mirror of
https://github.com/github/codeql.git
synced 2025-12-23 20:26:32 +01:00
Update TimingAttack.qll
This commit is contained in:
@@ -5,6 +5,27 @@ private import semmle.python.dataflow.new.TaintTracking3
|
|||||||
private import semmle.python.ApiGraphs
|
private import semmle.python.ApiGraphs
|
||||||
private import semmle.python.dataflow.new.RemoteFlowSources
|
private import semmle.python.dataflow.new.RemoteFlowSources
|
||||||
|
|
||||||
|
class ProduceHashCall extends DataFlow::CallCfgNode {
|
||||||
|
ProduceHashCall() {
|
||||||
|
this = API::moduleImport("hmac").getMember("digest").getACall() or
|
||||||
|
this =
|
||||||
|
API::moduleImport("hmac")
|
||||||
|
.getMember("new")
|
||||||
|
.getReturn()
|
||||||
|
.getMember(["digest", "hexdigest"])
|
||||||
|
.getACall() or
|
||||||
|
this =
|
||||||
|
API::moduleImport("hashlib")
|
||||||
|
.getMember([
|
||||||
|
"new", "sha1", "sha224", "sha256", "sha384", "sha512", "blake2b", "blake2s", "md5"
|
||||||
|
])
|
||||||
|
.getReturn()
|
||||||
|
.getMember(["digest", "hexdigest"])
|
||||||
|
.getACall()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/** A data flow sink for comparison. */
|
/** A data flow sink for comparison. */
|
||||||
class CompareSink extends DataFlow::Node {
|
class CompareSink extends DataFlow::Node {
|
||||||
CompareSink() {
|
CompareSink() {
|
||||||
@@ -126,21 +147,7 @@ class UserInputMsgConfig extends TaintTracking::Configuration {
|
|||||||
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
|
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
|
||||||
|
|
||||||
override predicate isSink(DataFlow::Node sink) {
|
override predicate isSink(DataFlow::Node sink) {
|
||||||
sink = API::moduleImport("hmac").getMember("digest").getACall() or
|
sink = any(CryptographicOperation cryptography).getAnInput()
|
||||||
sink =
|
|
||||||
API::moduleImport("hmac")
|
|
||||||
.getMember("new")
|
|
||||||
.getReturn()
|
|
||||||
.getMember(["digest", "hexdigest"])
|
|
||||||
.getACall() or
|
|
||||||
sink =
|
|
||||||
API::moduleImport("hashlib")
|
|
||||||
.getMember([
|
|
||||||
"new", "sha1", "sha224", "sha256", "sha384", "sha512", "blake2b", "blake2s", "md5"
|
|
||||||
])
|
|
||||||
.getReturn()
|
|
||||||
.getMember(["digest", "hexdigest"])
|
|
||||||
.getACall()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user