Skip to content

Commit bbc712f

Browse files
authored
Merge pull request #8297 from erik-krogh/atmPerf
JS: Fix ATM timeout on NodeJS
2 parents 624795c + dfc74d7 commit bbc712f

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

javascript/ql/experimental/adaptivethreatmodeling/lib/experimental/adaptivethreatmodeling/NosqlInjectionATM.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,17 @@ predicate isBaseAdditionalFlowStep(
120120
}
121121

122122
/**
123+
* Gets a value that is (transitively) written to `query`, where `query` is a NoSQL sink.
124+
*
123125
* This predicate allows us to propagate data flow through property writes and array constructors
124126
* within a query object, enabling the security query to pick up NoSQL injection vulnerabilities
125127
* involving more complex queries.
126128
*/
127129
DataFlow::Node getASubexpressionWithinQuery(DataFlow::Node query) {
130+
any(NosqlInjectionATMConfig cfg).isEffectiveSink(query) and
128131
exists(DataFlow::SourceNode receiver |
129-
receiver.flowsTo(getASubexpressionWithinQuery*(query.getALocalSource())) and
132+
receiver = [getASubexpressionWithinQuery(query), query].getALocalSource()
133+
|
130134
result =
131135
[receiver.getAPropertyWrite().getRhs(), receiver.(DataFlow::ArrayCreationNode).getAnElement()]
132136
)

javascript/ql/lib/semmle/javascript/frameworks/Testing.qll

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,14 @@ class BDDTest extends Test, @call_expr {
3939
}
4040

4141
/**
42-
* Gets the test file for `f` with stem extension `stemExt`.
43-
* That is, a file named file named `<base>.<stemExt>.<ext>` in the
42+
* Gets the test file for `f` with stem extension `stemExt`, where `stemExt` is "test" or "spec".
43+
* That is, a file named `<base>.<stemExt>.<ext>` in the
4444
* same directory as `f` which is named `<base>.<ext>`.
4545
*/
46-
bindingset[stemExt]
46+
pragma[noinline]
4747
File getTestFile(File f, string stemExt) {
48+
stemExt = ["test", "spec"] and
49+
result.getBaseName().regexpMatch(".*\\.(test|spec)\\..*") and
4850
result = f.getParentContainer().getFile(f.getStem() + "." + stemExt + "." + f.getExtension())
4951
}
5052

0 commit comments

Comments
 (0)