Skip to content

Commit fb72dd5

Browse files
committed
Added support for axios.interceptors.request.
1 parent ea64b4e commit fb72dd5

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/javascript-all
4+
extensible: sinkModel
5+
data:
6+
- ["axios", "Member[interceptors].Member[request].Member[use].Argument[0].Parameter[0].Member[url]", "request-forgery"]

javascript/ql/test/experimental/Security/CWE-918/SSRF.expected

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ edges
2121
| check-validator.js:59:29:59:45 | req.query.tainted | check-validator.js:59:15:59:45 | "test.c ... tainted | provenance | |
2222
| check-validator.js:62:29:62:37 | numberURL | check-validator.js:62:15:62:37 | "test.c ... mberURL | provenance | |
2323
| check-validator.js:68:29:68:45 | req.query.tainted | check-validator.js:68:15:68:45 | "test.c ... tainted | provenance | |
24+
| interceptors.js:19:11:19:17 | { url } | interceptors.js:19:11:19:28 | url | provenance | |
25+
| interceptors.js:19:11:19:28 | url | interceptors.js:20:23:20:25 | url | provenance | |
26+
| interceptors.js:19:21:19:28 | req.body | interceptors.js:19:11:19:17 | { url } | provenance | |
27+
| interceptors.js:20:5:20:25 | userProvidedUrl | interceptors.js:11:26:11:40 | userProvidedUrl | provenance | |
28+
| interceptors.js:20:23:20:25 | url | interceptors.js:20:5:20:25 | userProvidedUrl | provenance | |
2429
nodes
2530
| check-domain.js:16:9:16:27 | url | semmle.label | url |
2631
| check-domain.js:16:15:16:27 | req.query.url | semmle.label | req.query.url |
@@ -64,6 +69,12 @@ nodes
6469
| check-validator.js:62:29:62:37 | numberURL | semmle.label | numberURL |
6570
| check-validator.js:68:15:68:45 | "test.c ... tainted | semmle.label | "test.c ... tainted |
6671
| check-validator.js:68:29:68:45 | req.query.tainted | semmle.label | req.query.tainted |
72+
| interceptors.js:11:26:11:40 | userProvidedUrl | semmle.label | userProvidedUrl |
73+
| interceptors.js:19:11:19:17 | { url } | semmle.label | { url } |
74+
| interceptors.js:19:11:19:28 | url | semmle.label | url |
75+
| interceptors.js:19:21:19:28 | req.body | semmle.label | req.body |
76+
| interceptors.js:20:5:20:25 | userProvidedUrl | semmle.label | userProvidedUrl |
77+
| interceptors.js:20:23:20:25 | url | semmle.label | url |
6778
subpaths
6879
#select
6980
| check-domain.js:17:13:17:15 | url | check-domain.js:16:15:16:27 | req.query.url | check-domain.js:17:13:17:15 | url | The URL of this request depends on a user-provided value. |
@@ -86,3 +97,4 @@ subpaths
8697
| check-validator.js:59:15:59:45 | "test.c ... tainted | check-validator.js:59:29:59:45 | req.query.tainted | check-validator.js:59:15:59:45 | "test.c ... tainted | The URL of this request depends on a user-provided value. |
8798
| check-validator.js:62:15:62:37 | "test.c ... mberURL | check-validator.js:54:21:54:37 | req.query.tainted | check-validator.js:62:15:62:37 | "test.c ... mberURL | The URL of this request depends on a user-provided value. |
8899
| check-validator.js:68:15:68:45 | "test.c ... tainted | check-validator.js:68:29:68:45 | req.query.tainted | check-validator.js:68:15:68:45 | "test.c ... tainted | The URL of this request depends on a user-provided value. |
100+
| interceptors.js:11:26:11:40 | userProvidedUrl | interceptors.js:19:21:19:28 | req.body | interceptors.js:11:26:11:40 | userProvidedUrl | The URL of this request depends on a user-provided value. |

javascript/ql/test/experimental/Security/CWE-918/interceptors.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ let userProvidedUrl = "";
88
axios.interceptors.request.use(
99
function (config) {
1010
if (userProvidedUrl) {
11-
config.url = userProvidedUrl; // SSRF -- not flagged
11+
config.url = userProvidedUrl; // SSRF
1212
}
1313
return config;
1414
},

0 commit comments

Comments
 (0)