Skip to content

Commit 7af6dc7

Browse files
authored
Merge pull request github#7702 from atorralba/atorralba/fix-jndi-injection-sinks
Java: Remove some JNDI Injection sinks
2 parents 9bd2ac9 + 908b7c4 commit 7af6dc7

33 files changed

+704
-175
lines changed

java/ql/lib/semmle/code/java/security/JndiInjection.qll

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,12 @@ private class DefaultJndiInjectionSinkModel extends SinkModelCsv {
8888
// Spring
8989
"org.springframework.jndi;JndiTemplate;false;lookup;;;Argument[0];jndi-injection",
9090
// spring-ldap 1.2.x and newer
91-
"org.springframework.ldap.core;LdapOperations;true;lookup;;;Argument[0];jndi-injection",
91+
"org.springframework.ldap.core;LdapOperations;true;lookup;(Name);;Argument[0];jndi-injection",
92+
"org.springframework.ldap.core;LdapOperations;true;lookup;(Name,ContextMapper);;Argument[0];jndi-injection",
93+
"org.springframework.ldap.core;LdapOperations;true;lookup;(Name,String[],ContextMapper);;Argument[0];jndi-injection",
94+
"org.springframework.ldap.core;LdapOperations;true;lookup;(String);;Argument[0];jndi-injection",
95+
"org.springframework.ldap.core;LdapOperations;true;lookup;(String,ContextMapper);;Argument[0];jndi-injection",
96+
"org.springframework.ldap.core;LdapOperations;true;lookup;(String,String[],ContextMapper);;Argument[0];jndi-injection",
9297
"org.springframework.ldap.core;LdapOperations;true;lookupContext;;;Argument[0];jndi-injection",
9398
"org.springframework.ldap.core;LdapOperations;true;findByDn;;;Argument[0];jndi-injection",
9499
"org.springframework.ldap.core;LdapOperations;true;rename;;;Argument[0];jndi-injection",

java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,17 @@ public void testSpringLdapTemplateBad1(@RequestParam String nameStr) throws Nami
110110
LdapTemplate ctx = new LdapTemplate();
111111
Name name = new CompositeName().add(nameStr);
112112

113+
ctx.lookup(name); // $hasJndiInjection
114+
ctx.lookup(name, (AttributesMapper) null); // Safe
115+
ctx.lookup(name, (ContextMapper) null); // $hasJndiInjection
116+
ctx.lookup(name, new String[] {}, (AttributesMapper) null); // Safe
117+
ctx.lookup(name, new String[] {}, (ContextMapper) null); // $hasJndiInjection
113118
ctx.lookup(nameStr); // $hasJndiInjection
119+
ctx.lookup(nameStr, (AttributesMapper) null); // Safe
120+
ctx.lookup(nameStr, (ContextMapper) null); // $hasJndiInjection
121+
ctx.lookup(nameStr, new String[] {}, (AttributesMapper) null); // Safe
122+
ctx.lookup(nameStr, new String[] {}, (ContextMapper) null); // $hasJndiInjection
123+
ctx.lookupContext(name); // $hasJndiInjection
114124
ctx.lookupContext(nameStr); // $hasJndiInjection
115125
ctx.findByDn(name, null); // $hasJndiInjection
116126
ctx.rename(name, null); // $hasJndiInjection
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/springframework-5.3.8:${testdir}/../../../stubs/shiro-core-1.5.2:${testdir}/../../../stubs/spring-ldap-2.3.2:${testdir}/../../../stubs/Saxon-HE-9.9.1-7
1+
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/springframework-5.3.8:${testdir}/../../../stubs/shiro-core-1.5.2:${testdir}/../../../stubs/spring-ldap-2.3.2:${testdir}/../../../stubs/Saxon-HE-9.9.1-7:${testdir}/../../../stubs/apache-commons-logging-1.2

java/ql/test/stubs/shiro-core-1.5.2/org/apache/shiro/jndi/JndiCallback.java

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

java/ql/test/stubs/shiro-core-1.5.2/org/apache/shiro/jndi/JndiTemplate.java

Lines changed: 19 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

java/ql/test/stubs/spring-ldap-2.3.2/org/springframework/LdapDataEntry.java

Lines changed: 25 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

java/ql/test/stubs/spring-ldap-2.3.2/org/springframework/ldap/core/AttributeModificationsAware.java

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

java/ql/test/stubs/spring-ldap-2.3.2/org/springframework/ldap/core/AttributesMapper.java

Lines changed: 8 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

java/ql/test/stubs/spring-ldap-2.3.2/org/springframework/ldap/core/AuthenticatedLdapEntryContextCallback.java

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

java/ql/test/stubs/spring-ldap-2.3.2/org/springframework/ldap/core/AuthenticatedLdapEntryContextMapper.java

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)