Skip to content

Commit 9cf0a94

Browse files
committed
use some Sanitizer classes that were unused in the query code
1 parent 5c04516 commit 9cf0a94

File tree

6 files changed

+27
-1
lines changed

6 files changed

+27
-1
lines changed

javascript/ql/lib/semmle/javascript/security/dataflow/DeepObjectResourceExhaustionQuery.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ class Configuration extends TaintTracking::Configuration {
2626
guard instanceof TaintedObject::SanitizerGuard
2727
}
2828

29+
override predicate isSanitizer(DataFlow::Node node) {
30+
super.isSanitizer(node) or
31+
node instanceof Sanitizer
32+
}
33+
2934
override predicate isAdditionalFlowStep(
3035
DataFlow::Node src, DataFlow::Node trg, DataFlow::FlowLabel inlbl, DataFlow::FlowLabel outlbl
3136
) {

javascript/ql/lib/semmle/javascript/security/dataflow/HardcodedCredentialsQuery.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ class Configuration extends DataFlow::Configuration {
1919

2020
override predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
2121

22+
override predicate isBarrier(DataFlow::Node node) {
23+
super.isBarrier(node) or
24+
node instanceof Sanitizer
25+
}
26+
2227
override predicate isAdditionalFlowStep(DataFlow::Node src, DataFlow::Node trg) {
2328
exists(Base64::Encode encode | src = encode.getInput() and trg = encode.getOutput())
2429
or

javascript/ql/lib/semmle/javascript/security/dataflow/InsecureDownloadQuery.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,9 @@ class Configuration extends DataFlow::Configuration {
3131
override predicate isSink(DataFlow::Node sink, DataFlow::FlowLabel label) {
3232
sink.(Sink).getALabel() = label
3333
}
34+
35+
override predicate isBarrier(DataFlow::Node node) {
36+
super.isBarrier(node) or
37+
node instanceof Sanitizer
38+
}
3439
}

javascript/ql/lib/semmle/javascript/security/dataflow/UnvalidatedDynamicMethodCallCustomizations.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ module UnvalidatedDynamicMethodCall {
3434

3535
/**
3636
* A sanitizer for unvalidated dynamic method calls.
37+
* Override the `sanitizes` predicate to specify an edge that should be sanitized.
38+
* The `this` value is not seen as a sanitizer.
3739
*/
3840
abstract class Sanitizer extends DataFlow::Node {
3941
abstract predicate sanitizes(DataFlow::Node source, DataFlow::Node sink, DataFlow::FlowLabel lbl);

javascript/ql/lib/semmle/javascript/security/dataflow/UnvalidatedDynamicMethodCallQuery.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ class Configuration extends TaintTracking::Configuration {
3838
sink.(Sink).getFlowLabel() = label
3939
}
4040

41-
override predicate isSanitizer(DataFlow::Node nd) { super.isSanitizer(nd) }
41+
override predicate isSanitizerEdge(
42+
DataFlow::Node pred, DataFlow::Node succ, DataFlow::FlowLabel lbl
43+
) {
44+
any(Sanitizer s).sanitizes(pred, succ, lbl)
45+
}
4246

4347
override predicate isSanitizerGuard(TaintTracking::SanitizerGuardNode guard) {
4448
guard instanceof NumberGuard or

javascript/ql/src/experimental/semmle/javascript/security/dataflow/ResourceExhaustion.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ module ResourceExhaustion {
2323

2424
override predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
2525

26+
override predicate isSanitizer(DataFlow::Node node) {
27+
super.isSanitizer(node) or
28+
node instanceof Sanitizer
29+
}
30+
2631
override predicate isAdditionalTaintStep(DataFlow::Node src, DataFlow::Node dst) {
2732
isNumericFlowStep(src, dst)
2833
or

0 commit comments

Comments
 (0)