Skip to content

Commit 94e9c02

Browse files
committed
add test for exceptional taint-flow
1 parent 1ba777a commit 94e9c02

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,16 @@ nodes
320320
| tst.js:285:59:285:65 | tainted |
321321
| tst.js:285:59:285:65 | tainted |
322322
| tst.js:285:59:285:65 | tainted |
323+
| tst.js:298:9:298:16 | location |
324+
| tst.js:298:9:298:16 | location |
325+
| tst.js:299:10:299:10 | e |
326+
| tst.js:300:20:300:20 | e |
327+
| tst.js:300:20:300:20 | e |
328+
| tst.js:305:10:305:17 | location |
329+
| tst.js:305:10:305:17 | location |
330+
| tst.js:307:10:307:10 | e |
331+
| tst.js:308:20:308:20 | e |
332+
| tst.js:308:20:308:20 | e |
323333
| v-html.vue:2:8:2:23 | v-html=tainted |
324334
| v-html.vue:2:8:2:23 | v-html=tainted |
325335
| v-html.vue:6:42:6:58 | document.location |
@@ -613,6 +623,14 @@ edges
613623
| tst.js:282:19:282:29 | window.name | tst.js:282:9:282:29 | tainted |
614624
| tst.js:282:19:282:29 | window.name | tst.js:282:9:282:29 | tainted |
615625
| tst.js:285:59:285:65 | tainted | tst.js:285:59:285:65 | tainted |
626+
| tst.js:298:9:298:16 | location | tst.js:299:10:299:10 | e |
627+
| tst.js:298:9:298:16 | location | tst.js:299:10:299:10 | e |
628+
| tst.js:299:10:299:10 | e | tst.js:300:20:300:20 | e |
629+
| tst.js:299:10:299:10 | e | tst.js:300:20:300:20 | e |
630+
| tst.js:305:10:305:17 | location | tst.js:307:10:307:10 | e |
631+
| tst.js:305:10:305:17 | location | tst.js:307:10:307:10 | e |
632+
| tst.js:307:10:307:10 | e | tst.js:308:20:308:20 | e |
633+
| tst.js:307:10:307:10 | e | tst.js:308:20:308:20 | e |
616634
| v-html.vue:6:42:6:58 | document.location | v-html.vue:2:8:2:23 | v-html=tainted |
617635
| v-html.vue:6:42:6:58 | document.location | v-html.vue:2:8:2:23 | v-html=tainted |
618636
| v-html.vue:6:42:6:58 | document.location | v-html.vue:2:8:2:23 | v-html=tainted |
@@ -703,6 +721,8 @@ edges
703721
| tst.js:285:59:285:65 | tainted | tst.js:282:9:282:29 | tainted | tst.js:285:59:285:65 | tainted | Cross-site scripting vulnerability due to $@. | tst.js:282:9:282:29 | tainted | user-provided value |
704722
| tst.js:285:59:285:65 | tainted | tst.js:282:19:282:29 | window.name | tst.js:285:59:285:65 | tainted | Cross-site scripting vulnerability due to $@. | tst.js:282:19:282:29 | window.name | user-provided value |
705723
| tst.js:285:59:285:65 | tainted | tst.js:285:59:285:65 | tainted | tst.js:285:59:285:65 | tainted | Cross-site scripting vulnerability due to $@. | tst.js:285:59:285:65 | tainted | user-provided value |
724+
| tst.js:300:20:300:20 | e | tst.js:298:9:298:16 | location | tst.js:300:20:300:20 | e | Cross-site scripting vulnerability due to $@. | tst.js:298:9:298:16 | location | user-provided value |
725+
| tst.js:308:20:308:20 | e | tst.js:305:10:305:17 | location | tst.js:308:20:308:20 | e | Cross-site scripting vulnerability due to $@. | tst.js:305:10:305:17 | location | user-provided value |
706726
| v-html.vue:2:8:2:23 | v-html=tainted | v-html.vue:6:42:6:58 | document.location | v-html.vue:2:8:2:23 | v-html=tainted | Cross-site scripting vulnerability due to $@. | v-html.vue:6:42:6:58 | document.location | user-provided value |
707727
| winjs.js:3:43:3:49 | tainted | winjs.js:2:17:2:33 | document.location | winjs.js:3:43:3:49 | tainted | Cross-site scripting vulnerability due to $@. | winjs.js:2:17:2:33 | document.location | user-provided value |
708728
| winjs.js:4:43:4:49 | tainted | winjs.js:2:17:2:33 | document.location | winjs.js:4:43:4:49 | tainted | Cross-site scripting vulnerability due to $@. | winjs.js:2:17:2:33 | document.location | user-provided value |

javascript/ql/test/query-tests/Security/CWE-079/tst.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,3 +292,20 @@ function flowThroughPropertyNames() {
292292
for (var p in obj)
293293
$(p); // OK
294294
}
295+
296+
function basicExceptions() {
297+
try {
298+
throw location;
299+
} catch(e) {
300+
$("body").append(e); // NOT OK
301+
}
302+
303+
try {
304+
try {
305+
throw location
306+
} finally {}
307+
} catch(e) {
308+
$("body").append(e); // NOT OK
309+
}
310+
311+
}

0 commit comments

Comments
 (0)