Skip to content

Commit eedfa4d

Browse files
authored
Merge pull request #18341 from asgerf/py/diff-informed
Python: enable diff-informed data flow queries
2 parents 4a9be40 + d3b9d1d commit eedfa4d

File tree

54 files changed

+151
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+151
-1
lines changed

python/ql/lib/semmle/python/security/dataflow/CleartextLoggingQuery.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ private module CleartextLoggingConfig implements DataFlow::ConfigSig {
2121
predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
2222

2323
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
24+
25+
predicate observeDiffInformedIncrementalMode() { any() }
2426
}
2527

2628
/** Global taint-tracking for detecting "Clear-text logging of sensitive information" vulnerabilities. */

python/ql/lib/semmle/python/security/dataflow/CleartextStorageQuery.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ private module CleartextStorageConfig implements DataFlow::ConfigSig {
2121
predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
2222

2323
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
24+
25+
predicate observeDiffInformedIncrementalMode() { any() }
2426
}
2527

2628
/** Global taint-tracking for detecting "Clear-text storage of sensitive information" vulnerabilities. */

python/ql/lib/semmle/python/security/dataflow/CodeInjectionQuery.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ private module CodeInjectionConfig implements DataFlow::ConfigSig {
1717
predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
1818

1919
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
20+
21+
predicate observeDiffInformedIncrementalMode() { any() }
2022
}
2123

2224
/** Global taint-tracking for detecting "code injection" vulnerabilities. */

python/ql/lib/semmle/python/security/dataflow/CommandInjectionQuery.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ module CommandInjectionConfig implements DataFlow::ConfigSig {
2020
predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
2121

2222
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
23+
24+
predicate observeDiffInformedIncrementalMode() { any() }
2325
}
2426

2527
/** Global taint-tracking for detecting "command injection" vulnerabilities. */

python/ql/lib/semmle/python/security/dataflow/CookieInjectionQuery.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ module CookieInjectionConfig implements DataFlow::ConfigSig {
2020
predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
2121

2222
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
23+
24+
predicate observeDiffInformedIncrementalMode() { any() }
2325
}
2426

2527
/** Global taint-tracking for detecting "cookie injection" vulnerabilities. */

python/ql/lib/semmle/python/security/dataflow/HttpHeaderInjectionQuery.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ private module HeaderInjectionConfig implements DataFlow::ConfigSig {
1616
predicate isSink(DataFlow::Node node) { node instanceof HttpHeaderInjection::Sink }
1717

1818
predicate isBarrier(DataFlow::Node node) { node instanceof HttpHeaderInjection::Sanitizer }
19+
20+
predicate observeDiffInformedIncrementalMode() { any() }
1921
}
2022

2123
/** Global taint-tracking for detecting "HTTP Header injection" vulnerabilities. */

python/ql/lib/semmle/python/security/dataflow/LdapInjectionQuery.qll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ private module LdapInjectionDnConfig implements DataFlow::ConfigSig {
1919
predicate isSink(DataFlow::Node sink) { sink instanceof DnSink }
2020

2121
predicate isBarrier(DataFlow::Node node) { node instanceof DnSanitizer }
22+
23+
predicate observeDiffInformedIncrementalMode() { any() }
2224
}
2325

2426
/** Global taint-tracking for detecting "LDAP injection via the distinguished name (DN) parameter" vulnerabilities. */
@@ -30,6 +32,8 @@ private module LdapInjectionFilterConfig implements DataFlow::ConfigSig {
3032
predicate isSink(DataFlow::Node sink) { sink instanceof FilterSink }
3133

3234
predicate isBarrier(DataFlow::Node node) { node instanceof FilterSanitizer }
35+
36+
predicate observeDiffInformedIncrementalMode() { any() }
3337
}
3438

3539
/** Global taint-tracking for detecting "LDAP injection via the filter parameter" vulnerabilities. */

python/ql/lib/semmle/python/security/dataflow/LogInjectionQuery.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ private module LogInjectionConfig implements DataFlow::ConfigSig {
1717
predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
1818

1919
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
20+
21+
predicate observeDiffInformedIncrementalMode() { any() }
2022
}
2123

2224
/** Global taint-tracking for detecting "log injection" vulnerabilities. */

python/ql/lib/semmle/python/security/dataflow/NoSqlInjectionQuery.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ module NoSqlInjectionConfig implements DataFlow::StateConfigSig {
5656
predicate isBarrier(DataFlow::Node node) {
5757
node = any(NoSqlSanitizer noSqlSanitizer).getAnInput()
5858
}
59+
60+
predicate observeDiffInformedIncrementalMode() { any() }
5961
}
6062

6163
module NoSqlInjectionFlow = TaintTracking::GlobalWithState<NoSqlInjectionConfig>;

python/ql/lib/semmle/python/security/dataflow/PamAuthorizationQuery.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ private module PamAuthorizationConfig implements DataFlow::ConfigSig {
3131
// Flow from handle to the authenticate call in the final step
3232
exists(VulnPamAuthCall c | c.getArg(0) = node1 | node2 = c)
3333
}
34+
35+
predicate observeDiffInformedIncrementalMode() { any() }
3436
}
3537

3638
/** Global taint-tracking for detecting "PAM Authorization" vulnerabilities. */

0 commit comments

Comments
 (0)