Skip to content

Commit 47ee6c6

Browse files
committed
Rust: Give regex injection extendable sources as well.
1 parent 0db5510 commit 47ee6c6

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

rust/ql/lib/codeql/rust/security/regex/RegexInjectionExtensions.qll

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ private import codeql.rust.Concepts
1515
* injection vulnerabilities, as well as extension points for adding your own.
1616
*/
1717
module RegexInjection {
18+
/**
19+
* A data flow source for regular expression injection vulnerabilities.
20+
*/
21+
abstract class Source extends DataFlow::Node { }
22+
1823
/**
1924
* A data flow sink for regular expression injection vulnerabilities.
2025
*/
@@ -27,6 +32,11 @@ module RegexInjection {
2732
*/
2833
abstract class Barrier extends DataFlow::Node { }
2934

35+
/**
36+
* An active threat-model source, considered as a flow source.
37+
*/
38+
private class ActiveThreatModelSourceAsSource extends Source, ActiveThreatModelSource { }
39+
3040
/**
3141
* A sink for `a` in `Regex::new(a)` when `a` is not a literal.
3242
*/

rust/ql/src/queries/security/CWE-020/RegexInjection.ql

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
private import rust
1818
private import codeql.rust.dataflow.DataFlow
1919
private import codeql.rust.dataflow.TaintTracking
20-
private import codeql.rust.Concepts
2120
private import codeql.rust.security.regex.RegexInjectionExtensions
2221

2322
/**
@@ -26,7 +25,7 @@ private import codeql.rust.security.regex.RegexInjectionExtensions
2625
module RegexInjectionConfig implements DataFlow::ConfigSig {
2726
import RegexInjection
2827

29-
predicate isSource(DataFlow::Node source) { source instanceof ActiveThreatModelSource }
28+
predicate isSource(DataFlow::Node source) { source instanceof Source }
3029

3130
predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
3231

0 commit comments

Comments
 (0)