Skip to content

Commit 745a6f6

Browse files
committed
Getters called on parameters propagate taint
1 parent 4d5ec87 commit 745a6f6

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

java/ql/src/Security/CWE/CWE-094/JexlInjection.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class JexlInjectionConfig extends TaintTracking::Configuration {
2828
override predicate isSink(DataFlow::Node sink) { sink instanceof JexlEvaluationSink }
2929

3030
override predicate isAdditionalTaintStep(DataFlow::Node node1, DataFlow::Node node2) {
31-
any(JexlInjectionAdditionalTaintStep c).step(node1, node2)
31+
any(JexlInjectionAdditionalTaintStep c).step(node1, node2)
3232
}
3333
}
3434

java/ql/src/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ private import semmle.code.java.dataflow.ExternalFlow
1414
private import semmle.code.java.dataflow.internal.DataFlowPrivate
1515
import semmle.code.java.dataflow.FlowSteps
1616
private import FlowSummaryImpl as FlowSummaryImpl
17+
private import semmle.code.java.frameworks.JaxWS
1718

1819
/**
1920
* Holds if taint can flow from `src` to `sink` in zero or more
@@ -263,6 +264,8 @@ private predicate taintPreservingQualifierToMethod(Method m) {
263264
)
264265
or
265266
m.(TaintPreservingCallable).returnsTaintFrom(-1)
267+
or
268+
exists(JaxRsResourceMethod resourceMethod | m.(GetterMethod).getDeclaringType() = resourceMethod.getAParameter().getType())
266269
}
267270

268271
private class StringReplaceMethod extends TaintPreservingCallable {

0 commit comments

Comments
 (0)