Skip to content

Commit a3c58c6

Browse files
committed
Using DataFlow::ConfigSig instead of TaintTracking::Configuration
1 parent a8f887e commit a3c58c6

File tree

3 files changed

+19
-16
lines changed

3 files changed

+19
-16
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ module LdapInjection {
2626
/**
2727
* Additional taint steps for "LDAP Injection" vulnerabilities.
2828
*/
29-
predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
29+
predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
3030
filterTaintStep(nodeFrom, nodeTo)
3131
}
3232

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

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,25 @@
55

66
private import codeql.ruby.DataFlow
77
private import codeql.ruby.TaintTracking
8-
private import LdapInjectionCustomizations
9-
private import LdapInjectionCustomizations::LdapInjection
108

11-
/**
12-
* A taint-tracking configuration for detecting LDAP Injections vulnerabilities.
13-
*/
14-
class Configuration extends TaintTracking::Configuration {
15-
Configuration() { this = "LdapInjection" }
9+
/** Provides a taint-tracking configuration for detecting LDAP Injections vulnerabilities. */
10+
module LdapInjection {
11+
import LdapInjectionCustomizations::LdapInjection
1612

17-
override predicate isSource(DataFlow::Node source) { source instanceof Source }
13+
/**
14+
* A taint-tracking configuration for detecting LDAP Injections vulnerabilities.
15+
*/
16+
private module Config implements DataFlow::ConfigSig {
17+
predicate isSource(DataFlow::Node source) { source instanceof Source }
1818

19-
override predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
19+
predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
2020

21-
override predicate isSanitizer(DataFlow::Node node) { node instanceof Sanitizer }
21+
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
2222

23-
override predicate isAdditionalTaintStep(DataFlow::Node node1, DataFlow::Node node2) {
24-
LdapInjection::isAdditionalTaintStep(node1, node2)
23+
predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
24+
LdapInjection::isAdditionalFlowStep(node1, node2)
25+
}
2526
}
27+
28+
import TaintTracking::Make<Config>
2629
}

ruby/ql/src/experimental/ldap-injection/LdapInjection.ql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313

1414
import codeql.ruby.DataFlow
1515
import codeql.ruby.security.LdapInjectionQuery
16-
import DataFlow::PathGraph
16+
import LdapInjection::PathGraph
1717

18-
from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink
19-
where config.hasFlowPath(source, sink)
18+
from LdapInjection::PathNode source, LdapInjection::PathNode sink
19+
where LdapInjection::hasFlowPath(source, sink)
2020
select sink.getNode(), source, sink, "This LDAP query depends on a $@.", source.getNode(),
2121
"user-provided value"

0 commit comments

Comments
 (0)