Skip to content

Commit 1ba777a

Browse files
committed
remove deep taint of objects
1 parent c2b48eb commit 1ba777a

File tree

3 files changed

+1
-15
lines changed

3 files changed

+1
-15
lines changed

javascript/ql/src/semmle/javascript/security/dataflow/ExceptionXss.qll

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,6 @@ module ExceptionXss {
7878
or
7979
// All the usual taint-flow steps apply on data-flow before it has been thrown in an exception.
8080
this.isAdditionalFlowStep(pred, succ) and inlbl instanceof NotYetThrown and outlbl instanceof NotYetThrown
81-
or
82-
// We taint an object deep if it happens before an exception has been thrown.
83-
inlbl instanceof NotYetThrown and outlbl instanceof NotYetThrown and exists(DataFlow::PropWrite write | write.getRhs() = pred and write.getBase() = succ)
8481
}
8582
}
8683
}

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

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@ nodes
1616
| exception-xss.js:22:10:22:10 | e |
1717
| exception-xss.js:23:18:23:18 | e |
1818
| exception-xss.js:23:18:23:18 | e |
19-
| exception-xss.js:27:11:27:21 | {prop: foo} |
20-
| exception-xss.js:27:18:27:20 | foo |
21-
| exception-xss.js:28:10:28:10 | e |
22-
| exception-xss.js:29:18:29:18 | e |
23-
| exception-xss.js:29:18:29:18 | e |
2419
| exception-xss.js:33:11:33:22 | ["bar", foo] |
2520
| exception-xss.js:33:19:33:21 | foo |
2621
| exception-xss.js:34:10:34:10 | e |
@@ -61,7 +56,6 @@ edges
6156
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:9:11:9:13 | foo |
6257
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:15:9:15:11 | foo |
6358
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:21:11:21:13 | foo |
64-
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:27:18:27:20 | foo |
6559
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:33:19:33:21 | foo |
6660
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:46:16:46:18 | foo |
6761
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:81:16:81:18 | foo |
@@ -81,10 +75,6 @@ edges
8175
| exception-xss.js:21:11:21:21 | foo + "bar" | exception-xss.js:22:10:22:10 | e |
8276
| exception-xss.js:22:10:22:10 | e | exception-xss.js:23:18:23:18 | e |
8377
| exception-xss.js:22:10:22:10 | e | exception-xss.js:23:18:23:18 | e |
84-
| exception-xss.js:27:11:27:21 | {prop: foo} | exception-xss.js:28:10:28:10 | e |
85-
| exception-xss.js:27:18:27:20 | foo | exception-xss.js:27:11:27:21 | {prop: foo} |
86-
| exception-xss.js:28:10:28:10 | e | exception-xss.js:29:18:29:18 | e |
87-
| exception-xss.js:28:10:28:10 | e | exception-xss.js:29:18:29:18 | e |
8878
| exception-xss.js:33:11:33:22 | ["bar", foo] | exception-xss.js:34:10:34:10 | e |
8979
| exception-xss.js:33:19:33:21 | foo | exception-xss.js:33:11:33:22 | ["bar", foo] |
9080
| exception-xss.js:34:10:34:10 | e | exception-xss.js:35:18:35:18 | e |
@@ -118,7 +108,6 @@ edges
118108
| exception-xss.js:11:18:11:18 | e | exception-xss.js:2:15:2:31 | document.location | exception-xss.js:11:18:11:18 | e | Cross-site scripting vulnerability due to $@. | exception-xss.js:2:15:2:31 | document.location | user-provided value |
119109
| exception-xss.js:17:18:17:18 | e | exception-xss.js:2:15:2:31 | document.location | exception-xss.js:17:18:17:18 | e | Cross-site scripting vulnerability due to $@. | exception-xss.js:2:15:2:31 | document.location | user-provided value |
120110
| exception-xss.js:23:18:23:18 | e | exception-xss.js:2:15:2:31 | document.location | exception-xss.js:23:18:23:18 | e | Cross-site scripting vulnerability due to $@. | exception-xss.js:2:15:2:31 | document.location | user-provided value |
121-
| exception-xss.js:29:18:29:18 | e | exception-xss.js:2:15:2:31 | document.location | exception-xss.js:29:18:29:18 | e | Cross-site scripting vulnerability due to $@. | exception-xss.js:2:15:2:31 | document.location | user-provided value |
122111
| exception-xss.js:35:18:35:18 | e | exception-xss.js:2:15:2:31 | document.location | exception-xss.js:35:18:35:18 | e | Cross-site scripting vulnerability due to $@. | exception-xss.js:2:15:2:31 | document.location | user-provided value |
123112
| exception-xss.js:48:18:48:18 | e | exception-xss.js:2:15:2:31 | document.location | exception-xss.js:48:18:48:18 | e | Cross-site scripting vulnerability due to $@. | exception-xss.js:2:15:2:31 | document.location | user-provided value |
124113
| exception-xss.js:83:18:83:18 | e | exception-xss.js:2:15:2:31 | document.location | exception-xss.js:83:18:83:18 | e | Cross-site scripting vulnerability due to $@. | exception-xss.js:2:15:2:31 | document.location | user-provided value |

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
try {
2727
unknown({prop: foo});
2828
} catch(e) {
29-
$('myId').html(e); // NOT OK!
29+
$('myId').html(e); // We don't flag this for now.
3030
}
3131

3232
try {

0 commit comments

Comments
 (0)