Skip to content

Commit f5e17d7

Browse files
committed
Add additional Filter Methods
1 parent 3f36d32 commit f5e17d7

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

ruby/ql/lib/codeql/ruby/frameworks/Ldap.qll

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,16 @@ module NetLdap {
3434

3535
/** A call that constructs a LDAP query */
3636
private class NetLdapFilter extends LdapConstruction::Range, DataFlow::CallNode {
37-
NetLdapFilter() { this = any(ldap().getMember("Filter").getAMethodCall("eq")) }
37+
NetLdapFilter() {
38+
this =
39+
any(ldap()
40+
.getMember("Filter")
41+
.getAMethodCall([
42+
"begins", "bineq", "contains", "ends", "eq", "equals", "ex", "ge", "le", "ne",
43+
"present"
44+
])
45+
)
46+
}
3847

3948
override DataFlow::Node getQuery() { result = this.getArgument([0, 1]) }
4049
}

ruby/ql/lib/codeql/ruby/security/LdapInjectionCustomizations.qll

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,13 @@ module LdapInjection {
3434
exists(DataFlow::CallNode filterCall |
3535
(
3636
filterCall =
37-
API::getTopLevelMember("Net").getMember("LDAP").getMember("Filter").getAMethodCall("eq") or
37+
API::getTopLevelMember("Net")
38+
.getMember("LDAP")
39+
.getMember("Filter")
40+
.getAMethodCall([
41+
"begins", "bineq", "contains", "ends", "eq", "equals", "ex", "ge", "le", "ne",
42+
"present"
43+
]) or
3844
filterCall.getMethodName() = "[]"
3945
) and
4046
n1 = filterCall.getArgument([0, 1]) and

0 commit comments

Comments
 (0)