File tree Expand file tree Collapse file tree 4 files changed +36
-8
lines changed
lib/semmle/code/java/security Expand file tree Collapse file tree 4 files changed +36
-8
lines changed Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ private import semmle.code.java.security.XxeQuery
88/**
99 * A taint-tracking configuration for unvalidated local user input that is used in XML external entity expansion.
1010 */
11- class XxeLocalConfig extends TaintTracking:: Configuration {
11+ deprecated class XxeLocalConfig extends TaintTracking:: Configuration {
1212 XxeLocalConfig ( ) { this = "XxeLocalConfig" }
1313
1414 override predicate isSource ( DataFlow:: Node src ) { src instanceof LocalUserInput }
@@ -21,3 +21,17 @@ class XxeLocalConfig extends TaintTracking::Configuration {
2121 any ( XxeAdditionalTaintStep s ) .step ( n1 , n2 )
2222 }
2323}
24+
25+ private module XxeLocalConfig implements DataFlow:: ConfigSig {
26+ predicate isSource ( DataFlow:: Node src ) { src instanceof LocalUserInput }
27+
28+ predicate isSink ( DataFlow:: Node sink ) { sink instanceof XxeSink }
29+
30+ predicate isBarrier ( DataFlow:: Node sanitizer ) { sanitizer instanceof XxeSanitizer }
31+
32+ predicate isAdditionalFlowStep ( DataFlow:: Node n1 , DataFlow:: Node n2 ) {
33+ any ( XxeAdditionalTaintStep s ) .step ( n1 , n2 )
34+ }
35+ }
36+
37+ module XxeLocalFlow = TaintTracking:: Make< XxeLocalConfig > ;
Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ private import semmle.code.java.security.XxeQuery
88/**
99 * A taint-tracking configuration for unvalidated remote user input that is used in XML external entity expansion.
1010 */
11- class XxeConfig extends TaintTracking:: Configuration {
11+ deprecated class XxeConfig extends TaintTracking:: Configuration {
1212 XxeConfig ( ) { this = "XxeConfig" }
1313
1414 override predicate isSource ( DataFlow:: Node src ) { src instanceof RemoteFlowSource }
@@ -21,3 +21,17 @@ class XxeConfig extends TaintTracking::Configuration {
2121 any ( XxeAdditionalTaintStep s ) .step ( n1 , n2 )
2222 }
2323}
24+
25+ private module XxeConfig implements DataFlow:: ConfigSig {
26+ predicate isSource ( DataFlow:: Node src ) { src instanceof RemoteFlowSource }
27+
28+ predicate isSink ( DataFlow:: Node sink ) { sink instanceof XxeSink }
29+
30+ predicate isBarrier ( DataFlow:: Node sanitizer ) { sanitizer instanceof XxeSanitizer }
31+
32+ predicate isAdditionalFlowStep ( DataFlow:: Node n1 , DataFlow:: Node n2 ) {
33+ any ( XxeAdditionalTaintStep s ) .step ( n1 , n2 )
34+ }
35+ }
36+
37+ module XxeFlow = TaintTracking:: Make< XxeConfig > ;
Original file line number Diff line number Diff line change 1616import java
1717import semmle.code.java.dataflow.DataFlow
1818import semmle.code.java.security.XxeRemoteQuery
19- import DataFlow :: PathGraph
19+ import XxeFlow :: PathGraph
2020
21- from DataFlow :: PathNode source , DataFlow :: PathNode sink , XxeConfig conf
22- where conf . hasFlowPath ( source , sink )
21+ from XxeFlow :: PathNode source , XxeFlow :: PathNode sink
22+ where XxeFlow :: hasFlowPath ( source , sink )
2323select sink .getNode ( ) , source , sink ,
2424 "XML parsing depends on a $@ without guarding against external entity expansion." ,
2525 source .getNode ( ) , "user-provided value"
Original file line number Diff line number Diff line change 1616import java
1717import semmle.code.java.dataflow.DataFlow
1818import semmle.code.java.security.XxeLocalQuery
19- import DataFlow :: PathGraph
19+ import XxeLocalFlow :: PathGraph
2020
21- from DataFlow :: PathNode source , DataFlow :: PathNode sink , XxeLocalConfig conf
22- where conf . hasFlowPath ( source , sink )
21+ from XxeLocalFlow :: PathNode source , XxeLocalFlow :: PathNode sink
22+ where XxeLocalFlow :: hasFlowPath ( source , sink )
2323select sink .getNode ( ) , source , sink ,
2424 "XML parsing depends on a $@ without guarding against external entity expansion." ,
2525 source .getNode ( ) , "user-provided value"
You can’t perform that action at this time.
0 commit comments