Skip to content

Commit 7aecefc

Browse files
committed
Refactor Security.CWE.CWE-090.LdapInjectionLib
1 parent 07fdcf2 commit 7aecefc

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

java/ql/src/Security/CWE/CWE-090/LdapInjection.ql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
import java
1515
import semmle.code.java.dataflow.FlowSources
1616
import LdapInjectionLib
17-
import DataFlow::PathGraph
17+
import LdapInjectionFlow::PathGraph
1818

19-
from DataFlow::PathNode source, DataFlow::PathNode sink, LdapInjectionFlowConfig conf
20-
where conf.hasFlowPath(source, sink)
19+
from LdapInjectionFlow::PathNode source, LdapInjectionFlow::PathNode sink
20+
where LdapInjectionFlow::hasFlowPath(source, sink)
2121
select sink.getNode(), source, sink, "This LDAP query depends on a $@.", source.getNode(),
2222
"user-provided value"
Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
import java
22
import semmle.code.java.dataflow.FlowSources
3-
import DataFlow
43
import semmle.code.java.security.LdapInjection
54

65
/**
76
* A taint-tracking configuration for unvalidated user input that is used to construct LDAP queries.
87
*/
9-
class LdapInjectionFlowConfig extends TaintTracking::Configuration {
10-
LdapInjectionFlowConfig() { this = "LdapInjectionFlowConfig" }
8+
private module LdapInjectionFlowConfig implements DataFlow::ConfigSig {
9+
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
1110

12-
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
11+
predicate isSink(DataFlow::Node sink) { sink instanceof LdapInjectionSink }
1312

14-
override predicate isSink(DataFlow::Node sink) { sink instanceof LdapInjectionSink }
13+
predicate isBarrier(DataFlow::Node node) { node instanceof LdapInjectionSanitizer }
1514

16-
override predicate isSanitizer(DataFlow::Node node) { node instanceof LdapInjectionSanitizer }
17-
18-
override predicate isAdditionalTaintStep(DataFlow::Node pred, DataFlow::Node succ) {
15+
predicate isAdditionalFlowStep(DataFlow::Node pred, DataFlow::Node succ) {
1916
any(LdapInjectionAdditionalTaintStep a).step(pred, succ)
2017
}
2118
}
19+
20+
module LdapInjectionFlow = TaintTracking::Make<LdapInjectionFlowConfig>;

0 commit comments

Comments
 (0)