Skip to content

Commit 08d0cb7

Browse files
committed
revert the introduction of getEnclosingCall
1 parent f537e28 commit 08d0cb7

2 files changed

Lines changed: 2 additions & 27 deletions

File tree

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

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ module ExceptionXss {
4040
not isUnlikelyToThrowSensitiveInformation(node) and
4141
(
4242
// in the case of reflective calls the below ensures that both InvokeNodes have no known callee.
43-
forex(DataFlow::InvokeNode call | call = getEnclosingCallNode(node) |
43+
forex(DataFlow::InvokeNode call | call.getAnArgument() = node |
4444
not exists(call.getACallee())
4545
)
4646
or
@@ -74,23 +74,10 @@ module ExceptionXss {
7474
DataFlow::Node getErrorParam() { result = this.getParameter(0) }
7575
}
7676

77-
DataFlow::CallNode getEnclosingCallNode(DataFlow::Node node) {
78-
result.getEnclosingExpr() = getEnclosingCall(node.getEnclosingExpr())
79-
}
80-
81-
InvokeExpr getEnclosingCall(Expr e) {
82-
exists(Expr arg | arg = result.getAnArgument() |
83-
e.getParentExpr*() = arg and
84-
not exists(Expr mid | mid = any(InvokeExpr i) or mid = any(Function f) |
85-
e.getParentExpr+() = mid and mid.getParentExpr+() = result
86-
)
87-
)
88-
}
89-
9077
// `someFunction(.. <pred> .., (<result>, value) => {...}).
9178
DataFlow::Node getCallbackErrorParam(DataFlow::Node pred) {
9279
exists(DataFlow::CallNode call, Callback callback |
93-
getEnclosingCallNode(pred) = call and
80+
pred = call.getAnArgument() and
9481
call.getLastArgument() = callback and
9582
result = callback.getErrorParam() and
9683
not pred = callback

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

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +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:18:27:20 | foo |
20-
| exception-xss.js:28:10:28:10 | e |
21-
| exception-xss.js:29:18:29:18 | e |
22-
| exception-xss.js:29:18:29:18 | e |
2319
| exception-xss.js:33:11:33:22 | ["bar", foo] |
2420
| exception-xss.js:33:19:33:21 | foo |
2521
| exception-xss.js:34:10:34:10 | e |
@@ -103,7 +99,6 @@ edges
10399
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:9:11:9:13 | foo |
104100
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:15:9:15:11 | foo |
105101
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:21:11:21:13 | foo |
106-
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:27:18:27:20 | foo |
107102
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:33:19:33:21 | foo |
108103
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:46:16:46:18 | foo |
109104
| exception-xss.js:2:9:2:31 | foo | exception-xss.js:81:16:81:18 | foo |
@@ -120,16 +115,11 @@ edges
120115
| exception-xss.js:16:10:16:10 | e | exception-xss.js:17:18:17:18 | e |
121116
| exception-xss.js:16:10:16:10 | e | exception-xss.js:17:18:17:18 | e |
122117
| exception-xss.js:21:11:21:13 | foo | exception-xss.js:21:11:21:21 | foo + "bar" |
123-
| exception-xss.js:21:11:21:13 | foo | exception-xss.js:22:10:22:10 | e |
124118
| exception-xss.js:21:11:21:21 | foo + "bar" | exception-xss.js:22:10:22:10 | e |
125119
| exception-xss.js:22:10:22:10 | e | exception-xss.js:23:18:23:18 | e |
126120
| exception-xss.js:22:10:22:10 | e | exception-xss.js:23:18:23:18 | e |
127-
| exception-xss.js:27:18:27:20 | foo | exception-xss.js:28:10:28:10 | e |
128-
| exception-xss.js:28:10:28:10 | e | exception-xss.js:29:18:29:18 | e |
129-
| exception-xss.js:28:10:28:10 | e | exception-xss.js:29:18:29:18 | e |
130121
| exception-xss.js:33:11:33:22 | ["bar", foo] | exception-xss.js:34:10:34:10 | e |
131122
| exception-xss.js:33:19:33:21 | foo | exception-xss.js:33:11:33:22 | ["bar", foo] |
132-
| exception-xss.js:33:19:33:21 | foo | exception-xss.js:34:10:34:10 | e |
133123
| exception-xss.js:34:10:34:10 | e | exception-xss.js:35:18:35:18 | e |
134124
| exception-xss.js:34:10:34:10 | e | exception-xss.js:35:18:35:18 | e |
135125
| exception-xss.js:46:3:46:19 | exceptional return of deep("bar" + foo) | exception-xss.js:47:10:47:10 | e |
@@ -147,7 +137,6 @@ edges
147137
| exception-xss.js:90:10:90:10 | e | exception-xss.js:91:18:91:18 | e |
148138
| exception-xss.js:95:11:95:22 | [foo, "bar"] | exception-xss.js:96:10:96:10 | e |
149139
| exception-xss.js:95:12:95:14 | foo | exception-xss.js:95:11:95:22 | [foo, "bar"] |
150-
| exception-xss.js:95:12:95:14 | foo | exception-xss.js:96:10:96:10 | e |
151140
| exception-xss.js:96:10:96:10 | e | exception-xss.js:97:18:97:18 | e |
152141
| exception-xss.js:96:10:96:10 | e | exception-xss.js:97:18:97:18 | e |
153142
| exception-xss.js:102:12:102:14 | foo | exception-xss.js:106:10:106:10 | e |
@@ -200,7 +189,6 @@ edges
200189
| 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 |
201190
| 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 |
202191
| 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 |
203-
| 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 |
204192
| 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 |
205193
| 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 |
206194
| 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 |

0 commit comments

Comments
 (0)