Skip to content

Commit a47b1dc

Browse files
committed
JS: recognize Express header access with dynamic name
1 parent e78a4e9 commit a47b1dc

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

javascript/ql/src/semmle/javascript/frameworks/Express.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ module Express {
483483
// `req.headers.name`
484484
kind = "header" and
485485
headers.accesses(request, "headers") and
486-
this = headers.getAPropertyRead(_))
486+
this = headers.getAPropertyRead())
487487
or
488488
exists (string propName | propName = "host" or propName = "hostname" |
489489
// `req.host` and `req.hostname` are derived from headers

javascript/ql/test/library-tests/frameworks/Express/RequestInputAccess.expected

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
| src/express.js:28:3:28:16 | req.get("foo") | header | src/express.js:22:30:32:1 | functio ... ar');\\n} |
1313
| src/express.js:29:3:29:19 | req.header("bar") | header | src/express.js:22:30:32:1 | functio ... ar');\\n} |
1414
| src/express.js:30:3:30:13 | req.cookies | cookie | src/express.js:22:30:32:1 | functio ... ar');\\n} |
15-
| src/express.js:47:3:47:17 | req.headers.baz | header | src/express.js:46:22:50:1 | functio ... name;\\n} |
16-
| src/express.js:48:3:48:10 | req.host | header | src/express.js:46:22:50:1 | functio ... name;\\n} |
17-
| src/express.js:49:3:49:14 | req.hostname | header | src/express.js:46:22:50:1 | functio ... name;\\n} |
15+
| src/express.js:47:3:47:17 | req.headers.baz | header | src/express.js:46:22:51:1 | functio ... ame];\\n} |
16+
| src/express.js:48:3:48:10 | req.host | header | src/express.js:46:22:51:1 | functio ... ame];\\n} |
17+
| src/express.js:49:3:49:14 | req.hostname | header | src/express.js:46:22:51:1 | functio ... ame];\\n} |
18+
| src/express.js:50:3:50:32 | req.hea ... erName] | header | src/express.js:46:22:51:1 | functio ... ame];\\n} |

javascript/ql/test/library-tests/frameworks/Express/src/express.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,5 @@ app.post('/headers', function(req, res) {
4747
req.headers.baz;
4848
req.host;
4949
req.hostname;
50+
req.headers[config.headerName];
5051
});

0 commit comments

Comments
 (0)