mirror of
https://github.com/github/codeql.git
synced 2025-12-23 20:26:32 +01:00
Re-Add SensitiveResultReceiverConf as deprecated
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
/** Definitions for the sensitive result receiver query. */
|
/** Definitions for the sensitive result receiver query. */
|
||||||
|
|
||||||
import java
|
import java
|
||||||
import semmle.code.java.dataflow.TaintTracking2
|
import semmle.code.java.dataflow.TaintTracking
|
||||||
|
private import semmle.code.java.dataflow.TaintTracking2
|
||||||
import semmle.code.java.dataflow.FlowSources
|
import semmle.code.java.dataflow.FlowSources
|
||||||
import semmle.code.java.security.SensitiveActions
|
import semmle.code.java.security.SensitiveActions
|
||||||
|
|
||||||
@@ -31,6 +32,25 @@ private predicate untrustedResultReceiverSend(DataFlow::Node src, ResultReceiver
|
|||||||
UntrustedResultReceiverFlow::flow(src, DataFlow::exprNode(call.getReceiver()))
|
UntrustedResultReceiverFlow::flow(src, DataFlow::exprNode(call.getReceiver()))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
deprecated private class SensitiveResultReceiverConf extends TaintTracking::Configuration {
|
||||||
|
SensitiveResultReceiverConf() { this = "SensitiveResultReceiverConf" }
|
||||||
|
|
||||||
|
override predicate isSource(DataFlow::Node node) { node.asExpr() instanceof SensitiveExpr }
|
||||||
|
|
||||||
|
override predicate isSink(DataFlow::Node node) {
|
||||||
|
exists(ResultReceiverSendCall call |
|
||||||
|
untrustedResultReceiverSend(_, call) and
|
||||||
|
node.asExpr() = call.getSentData()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c) {
|
||||||
|
super.allowImplicitRead(node, c)
|
||||||
|
or
|
||||||
|
this.isSink(node)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module SensitiveResultReceiverConfig implements DataFlow::ConfigSig {
|
module SensitiveResultReceiverConfig implements DataFlow::ConfigSig {
|
||||||
predicate isSource(DataFlow::Node node) { node.asExpr() instanceof SensitiveExpr }
|
predicate isSource(DataFlow::Node node) { node.asExpr() instanceof SensitiveExpr }
|
||||||
|
|
||||||
@@ -54,13 +74,8 @@ module SensitiveResultReceiverFlow = TaintTracking::Global<SensitiveResultReceiv
|
|||||||
deprecated predicate sensitiveResultReceiver(
|
deprecated predicate sensitiveResultReceiver(
|
||||||
DataFlow::PathNode src, DataFlow::PathNode sink, DataFlow::Node recSrc
|
DataFlow::PathNode src, DataFlow::PathNode sink, DataFlow::Node recSrc
|
||||||
) {
|
) {
|
||||||
exists(
|
exists(ResultReceiverSendCall call |
|
||||||
ResultReceiverSendCall call, SensitiveResultReceiverFlow::PathNode srrSrc,
|
any(SensitiveResultReceiverConf c).hasFlowPath(src, sink) and
|
||||||
SensitiveResultReceiverFlow::PathNode srrSink
|
|
||||||
|
|
|
||||||
src.getNode() = srrSrc.getNode() and sink.getNode() = srrSink.getNode()
|
|
||||||
|
|
|
||||||
SensitiveResultReceiverFlow::flowPath(srrSrc, srrSink) and
|
|
||||||
sink.getNode().asExpr() = call.getSentData() and
|
sink.getNode().asExpr() = call.getSentData() and
|
||||||
untrustedResultReceiverSend(recSrc, call)
|
untrustedResultReceiverSend(recSrc, call)
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user