mirror of
https://github.com/github/codeql.git
synced 2026-05-04 21:25:44 +02:00
move TemplateObjectInjection out of experimental
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
nodes
|
||||
| tst.js:5:9:5:46 | bodyParameter |
|
||||
| tst.js:5:25:5:32 | req.body |
|
||||
| tst.js:5:25:5:32 | req.body |
|
||||
| tst.js:5:25:5:46 | req.bod ... rameter |
|
||||
| tst.js:6:9:6:49 | queryParameter |
|
||||
| tst.js:6:9:6:49 | queryParameter |
|
||||
| tst.js:6:26:6:49 | req.que ... rameter |
|
||||
| tst.js:6:26:6:49 | req.que ... rameter |
|
||||
| tst.js:6:26:6:49 | req.que ... rameter |
|
||||
| tst.js:8:28:8:40 | bodyParameter |
|
||||
| tst.js:8:28:8:40 | bodyParameter |
|
||||
| tst.js:9:28:9:41 | queryParameter |
|
||||
| tst.js:9:28:9:41 | queryParameter |
|
||||
| tst.js:18:19:18:32 | queryParameter |
|
||||
| tst.js:18:19:18:32 | queryParameter |
|
||||
| tst.js:21:24:21:26 | obj |
|
||||
| tst.js:21:24:21:26 | obj |
|
||||
| tst.js:22:28:22:30 | obj |
|
||||
| tst.js:22:28:22:30 | obj |
|
||||
| tst.js:24:11:24:24 | str |
|
||||
| tst.js:24:17:24:19 | obj |
|
||||
| tst.js:24:17:24:24 | obj + "" |
|
||||
| tst.js:27:28:27:42 | JSON.parse(str) |
|
||||
| tst.js:27:28:27:42 | JSON.parse(str) |
|
||||
| tst.js:27:39:27:41 | str |
|
||||
edges
|
||||
| tst.js:5:9:5:46 | bodyParameter | tst.js:8:28:8:40 | bodyParameter |
|
||||
| tst.js:5:9:5:46 | bodyParameter | tst.js:8:28:8:40 | bodyParameter |
|
||||
| tst.js:5:25:5:32 | req.body | tst.js:5:25:5:46 | req.bod ... rameter |
|
||||
| tst.js:5:25:5:32 | req.body | tst.js:5:25:5:46 | req.bod ... rameter |
|
||||
| tst.js:5:25:5:46 | req.bod ... rameter | tst.js:5:9:5:46 | bodyParameter |
|
||||
| tst.js:6:9:6:49 | queryParameter | tst.js:9:28:9:41 | queryParameter |
|
||||
| tst.js:6:9:6:49 | queryParameter | tst.js:9:28:9:41 | queryParameter |
|
||||
| tst.js:6:9:6:49 | queryParameter | tst.js:18:19:18:32 | queryParameter |
|
||||
| tst.js:6:9:6:49 | queryParameter | tst.js:18:19:18:32 | queryParameter |
|
||||
| tst.js:6:26:6:49 | req.que ... rameter | tst.js:6:9:6:49 | queryParameter |
|
||||
| tst.js:6:26:6:49 | req.que ... rameter | tst.js:6:9:6:49 | queryParameter |
|
||||
| tst.js:6:26:6:49 | req.que ... rameter | tst.js:6:9:6:49 | queryParameter |
|
||||
| tst.js:6:26:6:49 | req.que ... rameter | tst.js:6:9:6:49 | queryParameter |
|
||||
| tst.js:18:19:18:32 | queryParameter | tst.js:21:24:21:26 | obj |
|
||||
| tst.js:18:19:18:32 | queryParameter | tst.js:21:24:21:26 | obj |
|
||||
| tst.js:21:24:21:26 | obj | tst.js:22:28:22:30 | obj |
|
||||
| tst.js:21:24:21:26 | obj | tst.js:22:28:22:30 | obj |
|
||||
| tst.js:21:24:21:26 | obj | tst.js:24:17:24:19 | obj |
|
||||
| tst.js:24:11:24:24 | str | tst.js:27:39:27:41 | str |
|
||||
| tst.js:24:17:24:19 | obj | tst.js:24:17:24:24 | obj + "" |
|
||||
| tst.js:24:17:24:24 | obj + "" | tst.js:24:11:24:24 | str |
|
||||
| tst.js:27:39:27:41 | str | tst.js:27:28:27:42 | JSON.parse(str) |
|
||||
| tst.js:27:39:27:41 | str | tst.js:27:28:27:42 | JSON.parse(str) |
|
||||
#select
|
||||
| tst.js:8:28:8:40 | bodyParameter | tst.js:5:25:5:32 | req.body | tst.js:8:28:8:40 | bodyParameter | Template object injection due to $@. | tst.js:5:25:5:32 | req.body | user-provided value |
|
||||
| tst.js:9:28:9:41 | queryParameter | tst.js:6:26:6:49 | req.que ... rameter | tst.js:9:28:9:41 | queryParameter | Template object injection due to $@. | tst.js:6:26:6:49 | req.que ... rameter | user-provided value |
|
||||
| tst.js:22:28:22:30 | obj | tst.js:6:26:6:49 | req.que ... rameter | tst.js:22:28:22:30 | obj | Template object injection due to $@. | tst.js:6:26:6:49 | req.que ... rameter | user-provided value |
|
||||
| tst.js:27:28:27:42 | JSON.parse(str) | tst.js:6:26:6:49 | req.que ... rameter | tst.js:27:28:27:42 | JSON.parse(str) | Template object injection due to $@. | tst.js:6:26:6:49 | req.que ... rameter | user-provided value |
|
||||
@@ -0,0 +1 @@
|
||||
experimental/Security/CWE-073/TemplateObjectInjection.ql
|
||||
28
javascript/ql/test/query-tests/Security/CWE-073/tst.js
Normal file
28
javascript/ql/test/query-tests/Security/CWE-073/tst.js
Normal file
@@ -0,0 +1,28 @@
|
||||
var app = require('express')();
|
||||
app.set('view engine', 'hbs');
|
||||
|
||||
app.post('/path', function(req, res) {
|
||||
var bodyParameter = req.body.bodyParameter;
|
||||
var queryParameter = req.query.queryParameter;
|
||||
|
||||
res.render('template', bodyParameter); // NOT OK
|
||||
res.render('template', queryParameter); // NOT OK
|
||||
|
||||
if (typeof bodyParameter === "string") {
|
||||
res.render('template', bodyParameter); // OK
|
||||
}
|
||||
res.render('template', queryParameter + ""); // OK
|
||||
|
||||
res.render('template', {profile: bodyParameter}); // OK
|
||||
|
||||
indirect(res, queryParameter);
|
||||
});
|
||||
|
||||
function indirect(res, obj) {
|
||||
res.render("template", obj); // NOT OK
|
||||
|
||||
const str = obj + "";
|
||||
res.render("template", str); // OK
|
||||
|
||||
res.render("template", JSON.parse(str)); // NOT OK
|
||||
}
|
||||
Reference in New Issue
Block a user