Skip to content

Commit a9561a9

Browse files
committed
Refactor Security.CWE.CWE-643.XPathInjection
1 parent 271d50b commit a9561a9

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

java/ql/src/Security/CWE/CWE-643/XPathInjection.ql

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,18 @@ import java
1515
import semmle.code.java.dataflow.FlowSources
1616
import semmle.code.java.dataflow.TaintTracking
1717
import semmle.code.java.security.XPath
18-
import DataFlow::PathGraph
1918

20-
class XPathInjectionConfiguration extends TaintTracking::Configuration {
21-
XPathInjectionConfiguration() { this = "XPathInjection" }
19+
private module XPathInjectionConfiguration implements DataFlow::ConfigSig {
20+
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
2221

23-
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
24-
25-
override predicate isSink(DataFlow::Node sink) { sink instanceof XPathInjectionSink }
22+
predicate isSink(DataFlow::Node sink) { sink instanceof XPathInjectionSink }
2623
}
2724

28-
from DataFlow::PathNode source, DataFlow::PathNode sink, XPathInjectionConfiguration c
29-
where c.hasFlowPath(source, sink)
25+
module XPathInjectionFlow = TaintTracking::Make<XPathInjectionConfiguration>;
26+
27+
import XPathInjectionFlow::PathGraph
28+
29+
from XPathInjectionFlow::PathNode source, XPathInjectionFlow::PathNode sink
30+
where XPathInjectionFlow::hasFlowPath(source, sink)
3031
select sink.getNode(), source, sink, "XPath expression depends on a $@.", source.getNode(),
3132
"user-provided value"

0 commit comments

Comments
 (0)