Skip to content

Commit 0a26916

Browse files
committed
Re-Add SensitiveResultReceiverConf as deprecated
1 parent 77b67cb commit 0a26916

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

java/ql/lib/semmle/code/java/security/SensitiveResultReceiverQuery.qll

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
/** Definitions for the sensitive result receiver query. */
22

33
import java
4-
import semmle.code.java.dataflow.TaintTracking2
4+
import semmle.code.java.dataflow.TaintTracking
5+
private import semmle.code.java.dataflow.TaintTracking2
56
import semmle.code.java.dataflow.FlowSources
67
import semmle.code.java.security.SensitiveActions
78

@@ -31,6 +32,25 @@ private predicate untrustedResultReceiverSend(DataFlow::Node src, ResultReceiver
3132
UntrustedResultReceiverFlow::flow(src, DataFlow::exprNode(call.getReceiver()))
3233
}
3334

35+
deprecated private class SensitiveResultReceiverConf extends TaintTracking::Configuration {
36+
SensitiveResultReceiverConf() { this = "SensitiveResultReceiverConf" }
37+
38+
override predicate isSource(DataFlow::Node node) { node.asExpr() instanceof SensitiveExpr }
39+
40+
override predicate isSink(DataFlow::Node node) {
41+
exists(ResultReceiverSendCall call |
42+
untrustedResultReceiverSend(_, call) and
43+
node.asExpr() = call.getSentData()
44+
)
45+
}
46+
47+
override predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c) {
48+
super.allowImplicitRead(node, c)
49+
or
50+
this.isSink(node)
51+
}
52+
}
53+
3454
module SensitiveResultReceiverConfig implements DataFlow::ConfigSig {
3555
predicate isSource(DataFlow::Node node) { node.asExpr() instanceof SensitiveExpr }
3656

@@ -54,13 +74,8 @@ module SensitiveResultReceiverFlow = TaintTracking::Global<SensitiveResultReceiv
5474
deprecated predicate sensitiveResultReceiver(
5575
DataFlow::PathNode src, DataFlow::PathNode sink, DataFlow::Node recSrc
5676
) {
57-
exists(
58-
ResultReceiverSendCall call, SensitiveResultReceiverFlow::PathNode srrSrc,
59-
SensitiveResultReceiverFlow::PathNode srrSink
60-
|
61-
src.getNode() = srrSrc.getNode() and sink.getNode() = srrSink.getNode()
62-
|
63-
SensitiveResultReceiverFlow::flowPath(srrSrc, srrSink) and
77+
exists(ResultReceiverSendCall call |
78+
any(SensitiveResultReceiverConf c).hasFlowPath(src, sink) and
6479
sink.getNode().asExpr() = call.getSentData() and
6580
untrustedResultReceiverSend(recSrc, call)
6681
)

0 commit comments

Comments
 (0)