mirror of
https://github.com/github/codeql.git
synced 2025-12-18 01:33:15 +01:00
Add an additional taint step
This commit is contained in:
@@ -55,7 +55,7 @@ class AllTarfileOpens extends API::CallNode {
|
||||
class Configuration extends TaintTracking::Configuration {
|
||||
Configuration() { this = "TarSlip" }
|
||||
|
||||
override predicate isSource(DataFlow::Node source) { source instanceof AllTarfileOpens }
|
||||
override predicate isSource(DataFlow::Node source) { source = tarfileOpen().getACall() }
|
||||
|
||||
override predicate isSink(DataFlow::Node sink) {
|
||||
// A sink capturing method calls to `extractall` without `members` argument.
|
||||
@@ -99,6 +99,13 @@ class Configuration extends TaintTracking::Configuration {
|
||||
nodeFrom = call.getObject() and
|
||||
nodeTo = call
|
||||
)
|
||||
or
|
||||
exists(DataFlow::CallCfgNode closing |
|
||||
closing = API::moduleImport("contextlib").getMember("closing").getACall() and
|
||||
nodeFrom = closing.getArg(0) and
|
||||
nodeFrom = tarfileOpen().getACall() and
|
||||
nodeTo = closing
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user