JS: Add tests in request forgery queries · github/codeql@4a001f9 · GitHub
Skip to content

Commit 4a001f9

Browse files
committed
JS: Add tests in request forgery queries
1 parent 1253553 commit 4a001f9

6 files changed

Lines changed: 32 additions & 0 deletions

File tree

‎javascript/ql/test/query-tests/Security/CWE-918/ClientSideRequestForgery.expected‎

Lines changed: 6 additions & 0 deletions
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/javascript-all
4+
extensible: sourceModel
5+
data:
6+
- ['testlib', 'Member[getBrowserSource].ReturnValue', 'browser-url-query']
7+
- ['testlib', 'Member[getServerSource].ReturnValue', 'remote']

‎javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
| serverSide.js:143:5:143:26 | axios.g ... t.href) | serverSide.js:139:19:139:31 | req.query.url | serverSide.js:143:15:143:25 | target.href | The $@ of this request depends on a $@. | serverSide.js:143:15:143:25 | target.href | URL | serverSide.js:139:19:139:31 | req.query.url | user-provided value |
4040
| serverSide.js:145:5:145:25 | axios.g ... dedUrl) | serverSide.js:139:19:139:31 | req.query.url | serverSide.js:145:15:145:24 | encodedUrl | The $@ of this request depends on a $@. | serverSide.js:145:15:145:24 | encodedUrl | URL | serverSide.js:139:19:139:31 | req.query.url | user-provided value |
4141
| serverSide.js:147:5:147:25 | axios.g ... pedUrl) | serverSide.js:139:19:139:31 | req.query.url | serverSide.js:147:15:147:24 | escapedUrl | The $@ of this request depends on a $@. | serverSide.js:147:15:147:24 | escapedUrl | URL | serverSide.js:139:19:139:31 | req.query.url | user-provided value |
42+
| serverSide.js:151:1:151:15 | request(custom) | serverSide.js:150:16:150:51 | require ... ource() | serverSide.js:151:9:151:14 | custom | The $@ of this request depends on a $@. | serverSide.js:151:9:151:14 | custom | URL | serverSide.js:150:16:150:51 | require ... ource() | user-provided value |
4243
edges
4344
| Request/app/api/proxy/route2.serverSide.ts:4:9:4:15 | { url } | Request/app/api/proxy/route2.serverSide.ts:4:11:4:13 | url | provenance | |
4445
| Request/app/api/proxy/route2.serverSide.ts:4:11:4:13 | url | Request/app/api/proxy/route2.serverSide.ts:5:27:5:29 | url | provenance | |
@@ -144,6 +145,8 @@ edges
144145
| serverSide.js:146:11:146:20 | escapedUrl | serverSide.js:147:15:147:24 | escapedUrl | provenance | |
145146
| serverSide.js:146:24:146:36 | escape(input) | serverSide.js:146:11:146:20 | escapedUrl | provenance | |
146147
| serverSide.js:146:31:146:35 | input | serverSide.js:146:24:146:36 | escape(input) | provenance | |
148+
| serverSide.js:150:7:150:12 | custom | serverSide.js:151:9:151:14 | custom | provenance | |
149+
| serverSide.js:150:16:150:51 | require ... ource() | serverSide.js:150:7:150:12 | custom | provenance | |
147150
nodes
148151
| Request/app/api/proxy/route2.serverSide.ts:4:9:4:15 | { url } | semmle.label | { url } |
149152
| Request/app/api/proxy/route2.serverSide.ts:4:11:4:13 | url | semmle.label | url |
@@ -271,4 +274,7 @@ nodes
271274
| serverSide.js:146:24:146:36 | escape(input) | semmle.label | escape(input) |
272275
| serverSide.js:146:31:146:35 | input | semmle.label | input |
273276
| serverSide.js:147:15:147:24 | escapedUrl | semmle.label | escapedUrl |
277+
| serverSide.js:150:7:150:12 | custom | semmle.label | custom |
278+
| serverSide.js:150:16:150:51 | require ... ource() | semmle.label | require ... ource() |
279+
| serverSide.js:151:9:151:14 | custom | semmle.label | custom |
274280
subpaths
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/javascript-all
4+
extensible: sourceModel
5+
data:
6+
- ['testlib', 'Member[getBrowserSource].ReturnValue', 'browser-url-query']
7+
- ['testlib', 'Member[getServerSource].ReturnValue', 'remote']

‎javascript/ql/test/query-tests/Security/CWE-918/clientSide.js‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,7 @@ export function MyComponent() {
2222
request('https://example.com/api?q=' + name);
2323

2424
request(window.location.href + '?q=123');
25+
26+
const custom = require('testlib').getBrowserSource(); // $ Source[js/client-side-request-forgery]
27+
request(custom) // $ Alert[js/client-side-request-forgery];
2528
}

‎javascript/ql/test/query-tests/Security/CWE-918/serverSide.js‎

Lines changed: 3 additions & 0 deletions

0 commit comments

Comments
 (0)