Skip to content

Commit f319003

Browse files
authored
Merge pull request github#18528 from asgerf/jss/diff-informed
JS: Enable diff-informed queries
2 parents 1b2d7bc + 683ebca commit f319003

File tree

71 files changed

+157
-0
lines changed

Some content is hidden

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

71 files changed

+157
-0
lines changed

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

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

2727
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
28+
29+
predicate observeDiffInformedIncrementalMode() { any() }
2830
}
2931

3032
/**

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ module BuildArtifactLeakConfig implements DataFlow::ConfigSig {
3030
contents = DataFlow::ContentSet::anyProperty() and
3131
isSink(node)
3232
}
33+
34+
predicate observeDiffInformedIncrementalMode() { any() }
3335
}
3436

3537
/**

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ module CleartextLoggingConfig implements DataFlow::ConfigSig {
4141
contents = DataFlow::ContentSet::anyProperty() and
4242
isSink(node)
4343
}
44+
45+
predicate observeDiffInformedIncrementalMode() { any() }
4446
}
4547

4648
/**

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

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

2727
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
28+
29+
predicate observeDiffInformedIncrementalMode() { any() }
2830
}
2931

3032
module ClearTextStorageFlow = TaintTracking::Global<ClearTextStorageConfig>;

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ module ClientSideRequestForgeryConfig implements DataFlow::ConfigSig {
3131
predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
3232
isAdditionalRequestForgeryStep(node1, node2)
3333
}
34+
35+
predicate observeDiffInformedIncrementalMode() { any() }
3436
}
3537

3638
/**

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ module ClientSideUrlRedirectConfig implements DataFlow::StateConfigSig {
5454
state1 = state2
5555
)
5656
}
57+
58+
predicate observeDiffInformedIncrementalMode() { any() }
5759
}
5860

5961
/**

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ module CodeInjectionConfig implements DataFlow::ConfigSig {
2424
// HTML sanitizers are insufficient protection against code injection
2525
node1 = node2.(HtmlSanitizerCall).getInput()
2626
}
27+
28+
predicate observeDiffInformedIncrementalMode() { any() }
2729
}
2830

2931
/**

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ module CommandInjectionConfig implements DataFlow::ConfigSig {
3030
predicate isSink(DataFlow::Node sink) { isSinkWithHighlight(sink, _) }
3131

3232
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
33+
34+
predicate observeDiffInformedIncrementalMode() { any() }
3335
}
3436

3537
/**

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ module ConditionalBypassConfig implements DataFlow::ConfigSig {
2424
// comparing a tainted expression against a constant gives a tainted result
2525
node2.asExpr().(Comparison).hasOperands(node1.asExpr(), any(ConstantExpr c))
2626
}
27+
28+
predicate observeDiffInformedIncrementalMode() {
29+
none() // Disabled since the enclosing comparison is sometimes selected instead of the sink
30+
}
2731
}
2832

2933
/**

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ module CorsMisconfigurationConfig implements DataFlow::ConfigSig {
2323
node instanceof Sanitizer or
2424
node = TaintTracking::AdHocWhitelistCheckSanitizer::getABarrierNode()
2525
}
26+
27+
predicate observeDiffInformedIncrementalMode() { any() }
2628
}
2729

2830
/**

0 commit comments

Comments
 (0)