Skip to content

Commit 44bd540

Browse files
authored
Merge pull request #1495 from asger-semmle/array-taint-step
Approved by xiemaisi
2 parents d45b417 + 57dac1d commit 44bd540

File tree

4 files changed

+12
-2
lines changed

4 files changed

+12
-2
lines changed

javascript/ql/src/semmle/javascript/dataflow/TaintTracking.qll

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,8 @@ module TaintTracking {
268268
(name = "map" or name = "forEach") and
269269
(i = 0 or i = 2) and
270270
call.getArgument(0).analyze().getAValue().(AbstractFunction).getFunction() = f and
271-
pred.(DataFlow::SourceNode).getAMethodCall(name) = call and
271+
call.(DataFlow::MethodCallNode).getMethodName() = name and
272+
pred = call.getReceiver() and
272273
succ = DataFlow::parameterNode(f.getParameter(i))
273274
)
274275
or

javascript/ql/test/library-tests/TaintTracking/BasicTaintTracking.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ typeInferenceMismatch
88
| addexpr.js:4:10:4:17 | source() | addexpr.js:7:8:7:8 | x |
99
| addexpr.js:11:15:11:22 | source() | addexpr.js:21:8:21:12 | value |
1010
| advanced-callgraph.js:2:13:2:20 | source() | advanced-callgraph.js:6:22:6:22 | v |
11+
| array-callback.js:2:23:2:30 | source() | array-callback.js:4:10:4:10 | x |
1112
| booleanOps.js:2:11:2:18 | source() | booleanOps.js:4:8:4:8 | x |
1213
| booleanOps.js:2:11:2:18 | source() | booleanOps.js:13:10:13:10 | x |
1314
| booleanOps.js:2:11:2:18 | source() | booleanOps.js:19:10:19:10 | x |
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
async function test() {
2+
let promisedTaint = source();
3+
(await promisedTaint).map(x => {
4+
sink(x); // NOT OK
5+
});
6+
}

javascript/ql/test/query-tests/Security/CWE-079/StoredXss.expected

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ nodes
55
| xss-through-filenames.js:26:19:26:24 | files1 |
66
| xss-through-filenames.js:29:13:29:23 | files2 |
77
| xss-through-filenames.js:29:22:29:23 | [] |
8+
| xss-through-filenames.js:30:9:30:14 | files1 |
89
| xss-through-filenames.js:30:34:30:37 | file |
910
| xss-through-filenames.js:31:25:31:28 | file |
1011
| xss-through-filenames.js:33:19:33:24 | files2 |
@@ -15,10 +16,11 @@ nodes
1516
edges
1617
| xss-through-filenames.js:7:43:7:48 | files1 | xss-through-filenames.js:8:18:8:23 | files1 |
1718
| xss-through-filenames.js:25:43:25:48 | files1 | xss-through-filenames.js:26:19:26:24 | files1 |
18-
| xss-through-filenames.js:25:43:25:48 | files1 | xss-through-filenames.js:30:34:30:37 | file |
19+
| xss-through-filenames.js:25:43:25:48 | files1 | xss-through-filenames.js:30:9:30:14 | files1 |
1920
| xss-through-filenames.js:29:13:29:23 | files2 | xss-through-filenames.js:33:19:33:24 | files2 |
2021
| xss-through-filenames.js:29:13:29:23 | files2 | xss-through-filenames.js:35:29:35:34 | files2 |
2122
| xss-through-filenames.js:29:22:29:23 | [] | xss-through-filenames.js:29:13:29:23 | files2 |
23+
| xss-through-filenames.js:30:9:30:14 | files1 | xss-through-filenames.js:30:34:30:37 | file |
2224
| xss-through-filenames.js:30:34:30:37 | file | xss-through-filenames.js:31:25:31:28 | file |
2325
| xss-through-filenames.js:31:25:31:28 | file | xss-through-filenames.js:29:22:29:23 | [] |
2426
| xss-through-filenames.js:35:13:35:35 | files3 | xss-through-filenames.js:37:19:37:24 | files3 |

0 commit comments

Comments
 (0)