Skip to content

Commit 5d98ec3

Browse files
committed
stash: add debug query
1 parent d775135 commit 5d98ec3

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/**
2+
* @name test
3+
* @description test
4+
* @kind path-problem
5+
* @precision medium
6+
* @problem.severity error
7+
* @security-severity 5
8+
* @id js/test
9+
* @tags security
10+
* experimental
11+
*/
12+
13+
import javascript
14+
import DataFlow
15+
import DataFlow::PathGraph
16+
17+
class Source extends DataFlow::Node {
18+
Source() { exists(StringLiteral name | name.toString() = "'secret'" | this.asExpr() = name) }
19+
}
20+
21+
class MyTestConfig extends TaintTracking::Configuration {
22+
MyTestConfig() { this = "TestConfig" }
23+
24+
override predicate isSource(DataFlow::Node source) {
25+
// source instanceof Source
26+
source.getFile().getBaseName() != "[context]userTokenVerify.js"
27+
}
28+
29+
override predicate isSink(DataFlow::Node sink) {
30+
sink = API::moduleImport("jsonwebtoken").getMember("verify").getParameter(1).asSink() and
31+
sink.getFile().getBaseName() = "[context]userTokenVerify.js"
32+
}
33+
}
34+
35+
from DataFlow::PathNode source, DataFlow::PathNode sink, MyTestConfig config
36+
where config.hasFlowPath(source, sink)
37+
select sink.getNode(), source, sink, "$@", source.getNode(),
38+
source.getNode().getFile().getBaseName()

0 commit comments

Comments
 (0)