You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@knox.apache.org by "Tamás Hanicz (Jira)" <ji...@apache.org> on 2026/08/17 10:14:00 UTC

[jira] [Resolved] (KNOX-3417) KnoxLdapRealm builds the LDAP search filter from the client username without RFC-4515 escaping

     [ https://issues.apache.org/jira/browse/KNOX-3417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tamás Hanicz resolved KNOX-3417.
--------------------------------
    Fix Version/s: 2.1.1
                       (was: 3.1.0)
       Resolution: Fixed

> KnoxLdapRealm builds the LDAP search filter from the client username without RFC-4515 escaping
> ----------------------------------------------------------------------------------------------
>
>                 Key: KNOX-3417
>                 URL: https://issues.apache.org/jira/browse/KNOX-3417
>             Project: Apache Knox
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 2.1.0, 3.0.0
>            Reporter: Tamás Hanicz
>            Assignee: Tamás Hanicz
>            Priority: Blocker
>             Fix For: 3.0.0, 2.1.1
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Reported by n0mi1k Security
>  KnoxLdapRealm.java:699-703 formats (&(objectclass=%s)(%s=%s)) with expandTemplate(getUserSearchAttributeTemplate(), matchedPrincipal), and :706 expands the operator's userSearchFilter the same way; expandTemplate (:752-760) is a plain \{0} substitution with no encoding, principalRegex defaults to (.*) (:138) so matchPrincipal filters nothing, and the value reaches systemLdapCtx.search(searchBase, searchFilter, searchControls) at :716. No filter-escaping helper exists anywhere in the realm. The username arrives pre-authentication, via doGetAuthenticationInfo to getUserDn at :263. It's a filter-injection primitive rather than a demonstrated credential-less bypass.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)