@@ -7,19 +7,16 @@ private import semmle.code.java.Maps
77private import semmle.code.java.JDK
88
99private module ProcessBuilderEnvironmentConfig implements DataFlow:: ConfigSig {
10- predicate isSource ( DataFlow:: Node source ) { source .getType ( ) instanceof TypeProcessBuilder }
11-
12- predicate isAdditionalFlowStep ( DataFlow:: Node node1 , DataFlow:: Node node2 ) {
13- exists ( MethodCall mc | mc .getQualifier ( ) = node1 .asExpr ( ) and mc = node2 .asExpr ( ) |
10+ predicate isSource ( DataFlow:: Node source ) {
11+ exists ( MethodCall mc | mc = source .asExpr ( ) |
1412 mc .getMethod ( ) .hasQualifiedName ( "java.lang" , "ProcessBuilder" , "environment" )
1513 )
1614 }
1715
1816 predicate isSink ( DataFlow:: Node sink ) { sink .asExpr ( ) = any ( MapPutCall mpc ) .getQualifier ( ) }
1917}
2018
21- private module ProcessBuilderEnvironmentFlow =
22- TaintTracking:: Global< ProcessBuilderEnvironmentConfig > ;
19+ private module ProcessBuilderEnvironmentFlow = DataFlow:: Global< ProcessBuilderEnvironmentConfig > ;
2320
2421module ExecTaintedEnvironmentConfig implements DataFlow:: ConfigSig {
2522 predicate isSource ( DataFlow:: Node source ) { source instanceof ThreatModelFlowSource }
@@ -28,7 +25,7 @@ module ExecTaintedEnvironmentConfig implements DataFlow::ConfigSig {
2825 sinkNode ( sink , "environment-injection" )
2926 or
3027 exists ( MapPutCall mpc | mpc .getAnArgument ( ) = sink .asExpr ( ) |
31- ProcessBuilderEnvironmentFlow:: flow ( _ , DataFlow :: exprNode ( mpc .getQualifier ( ) ) )
28+ ProcessBuilderEnvironmentFlow:: flowToExpr ( mpc .getQualifier ( ) )
3229 )
3330 }
3431}
0 commit comments