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

Les Hazlewood updated SHIRO-115:
--------------------------------

    Affects Version/s:     (was: 1.0)
                       0.9

> ActiveDirectoryRealm might by vulnerable to LDAP search code injection
> ----------------------------------------------------------------------
>
>                 Key: SHIRO-115
>                 URL: https://issues.apache.org/jira/browse/SHIRO-115
>             Project: Shiro
>          Issue Type: Bug
>          Components: Authentication (log-in)
>    Affects Versions: 0.9
>            Reporter: Reiner Saddey
>            Assignee: Les Hazlewood
>            Priority: Minor
>             Fix For: 1.0
>
>
> When searching for a userName within getRoleNamesForUser, the search filter 
> is built by inserting the literal value from userName. Two potential problems 
> might arise: userName might contain (deliberately crafted) LDAP syntax 
> elements that could be used to affect the search. Permissible user principal 
> names within AD (e.g. "A(1") might be rejected due to syntax problems (even 
> some Microsoft software packages appear to be quick-and-dirty here - see note 
> at bottom of http://technet.microsoft.com/en-us/library/cc730634(WS.10).aspx) 
> .
> This potential vulnerability can easily be fixed by using search parameters 
> instead of literals  (which should be considered good style anyway). The 
> actual chance for an exploit appears to be very remote, but hackers are so 
> creative :-) 
> // vulnerable to injection String searchFilter = 
> "(&(objectClass=*)(userPrincipalName=" + userPrincipalName + "))";
> // vulnerable to injection NamingEnumeration answer = 
> ldapContext.search(searchBase, searchFilter, searchCtls);
>         String searchFilter = "(&(objectClass=*)(userPrincipalName={0}))";
>         Object[] searchArguments = new Object[] {userPrincipalName};
>         NamingEnumeration answer = ldapContext.search(searchBase, 
> searchFilter, searchArguments, searchCtls);

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to