Skip to content

Commit e9bfbb6

Browse files
committed
Java: Connect the external sources and steps to the defaults.
1 parent 5a391ab commit e9bfbb6

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

java/ql/src/semmle/code/java/dataflow/FlowSources.qll

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,20 @@ import semmle.code.java.frameworks.spring.SpringWebClient
2424
import semmle.code.java.frameworks.Guice
2525
import semmle.code.java.frameworks.struts.StrutsActions
2626
import semmle.code.java.frameworks.Thrift
27+
private import semmle.code.java.dataflow.ExternalFlow
2728

2829
/** A data flow source of remote user input. */
2930
abstract class RemoteFlowSource extends DataFlow::Node {
3031
/** Gets a string that describes the type of this remote flow source. */
3132
abstract string getSourceType();
3233
}
3334

35+
private class ExternalRemoteFlowSource extends RemoteFlowSource {
36+
ExternalRemoteFlowSource() { sourceNode(this, "remote") }
37+
38+
override string getSourceType() { result = "external" }
39+
}
40+
3441
private class RemoteTaintedMethodAccessSource extends RemoteFlowSource {
3542
RemoteTaintedMethodAccessSource() {
3643
this.asExpr().(MethodAccess).getMethod() instanceof RemoteTaintedMethod

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ private import semmle.code.java.dataflow.internal.ContainerFlow
1010
private import semmle.code.java.frameworks.spring.SpringController
1111
private import semmle.code.java.frameworks.spring.SpringHttp
1212
private import semmle.code.java.frameworks.Networking
13+
private import semmle.code.java.dataflow.ExternalFlow
1314
import semmle.code.java.dataflow.FlowSteps
1415

1516
/**
@@ -45,6 +46,8 @@ predicate localAdditionalTaintStep(DataFlow::Node src, DataFlow::Node sink) {
4546
localAdditionalTaintUpdateStep(src.asExpr(),
4647
sink.(DataFlow::PostUpdateNode).getPreUpdateNode().asExpr())
4748
or
49+
summaryStep(src, sink, "taint")
50+
or
4851
exists(Argument arg |
4952
src.asExpr() = arg and
5053
arg.isVararg() and

0 commit comments

Comments
 (0)