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
8
8
/**
9
9
* A taint-tracking configuration for unvalidated local user input that is used in XML external entity expansion.
10
10
*/
11
- class XxeLocalConfig extends TaintTracking:: Configuration {
11
+ deprecated class XxeLocalConfig extends TaintTracking:: Configuration {
12
12
XxeLocalConfig ( ) { this = "XxeLocalConfig" }
13
13
14
14
override predicate isSource ( DataFlow:: Node src ) { src instanceof LocalUserInput }
@@ -21,3 +21,17 @@ class XxeLocalConfig extends TaintTracking::Configuration {
21
21
any ( XxeAdditionalTaintStep s ) .step ( n1 , n2 )
22
22
}
23
23
}
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
8
8
/**
9
9
* A taint-tracking configuration for unvalidated remote user input that is used in XML external entity expansion.
10
10
*/
11
- class XxeConfig extends TaintTracking:: Configuration {
11
+ deprecated class XxeConfig extends TaintTracking:: Configuration {
12
12
XxeConfig ( ) { this = "XxeConfig" }
13
13
14
14
override predicate isSource ( DataFlow:: Node src ) { src instanceof RemoteFlowSource }
@@ -21,3 +21,17 @@ class XxeConfig extends TaintTracking::Configuration {
21
21
any ( XxeAdditionalTaintStep s ) .step ( n1 , n2 )
22
22
}
23
23
}
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 16
16
import java
17
17
import semmle.code.java.dataflow.DataFlow
18
18
import semmle.code.java.security.XxeRemoteQuery
19
- import DataFlow :: PathGraph
19
+ import XxeFlow :: PathGraph
20
20
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 )
23
23
select sink .getNode ( ) , source , sink ,
24
24
"XML parsing depends on a $@ without guarding against external entity expansion." ,
25
25
source .getNode ( ) , "user-provided value"
Original file line number Diff line number Diff line change 16
16
import java
17
17
import semmle.code.java.dataflow.DataFlow
18
18
import semmle.code.java.security.XxeLocalQuery
19
- import DataFlow :: PathGraph
19
+ import XxeLocalFlow :: PathGraph
20
20
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 )
23
23
select sink .getNode ( ) , source , sink ,
24
24
"XML parsing depends on a $@ without guarding against external entity expansion." ,
25
25
source .getNode ( ) , "user-provided value"
You can’t perform that action at this time.
0 commit comments