mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
JS: Add modeling for util promisify*
This commit is contained in:
@@ -730,7 +730,9 @@ module Promisify {
|
||||
DataFlow::moduleMember(["bluebird", "@google-cloud/promisify", "es6-promisify"],
|
||||
"promisifyAll"),
|
||||
DataFlow::moduleMember("thenify-all", "withCallback"),
|
||||
DataFlow::moduleImport(["util-promisifyall", "pify", "thenify-all", "@gar/promisify"])
|
||||
DataFlow::moduleImport([
|
||||
"util-promisifyall", "pify", "thenify-all", "@gar/promisify", "util.promisify-all"
|
||||
])
|
||||
].getACall()
|
||||
}
|
||||
}
|
||||
@@ -743,7 +745,7 @@ module Promisify {
|
||||
PromisifyCall() {
|
||||
this = DataFlow::moduleImport(["util", "bluebird"]).getAMemberCall("promisify")
|
||||
or
|
||||
this = DataFlow::moduleImport(["pify", "util.promisify"]).getACall()
|
||||
this = DataFlow::moduleImport(["pify", "util.promisify", "util-promisify"]).getACall()
|
||||
or
|
||||
this = DataFlow::moduleImport(["thenify", "@gar/promisify", "es6-promisify"]).getACall()
|
||||
or
|
||||
|
||||
@@ -83,6 +83,7 @@
|
||||
| other.js:30:33:30:35 | cmd | other.js:5:25:5:31 | req.url | other.js:30:33:30:35 | cmd | This command line depends on a $@. | other.js:5:25:5:31 | req.url | user-provided value |
|
||||
| other.js:34:44:34:46 | cmd | other.js:5:25:5:31 | req.url | other.js:34:44:34:46 | cmd | This command line depends on a $@. | other.js:5:25:5:31 | req.url | user-provided value |
|
||||
| promisification.js:24:22:24:25 | code | promisification.js:21:18:21:25 | req.body | promisification.js:24:22:24:25 | code | This command line depends on a $@. | promisification.js:21:18:21:25 | req.body | user-provided value |
|
||||
| promisification.js:31:24:31:27 | code | promisification.js:30:18:30:25 | req.body | promisification.js:31:24:31:27 | code | This command line depends on a $@. | promisification.js:30:18:30:25 | req.body | user-provided value |
|
||||
| promisification.js:40:21:40:24 | code | promisification.js:37:18:37:25 | req.body | promisification.js:40:21:40:24 | code | This command line depends on a $@. | promisification.js:37:18:37:25 | req.body | user-provided value |
|
||||
| promisification.js:43:24:43:27 | code | promisification.js:37:18:37:25 | req.body | promisification.js:43:24:43:27 | code | This command line depends on a $@. | promisification.js:37:18:37:25 | req.body | user-provided value |
|
||||
| promisification.js:52:21:52:24 | code | promisification.js:49:18:49:25 | req.body | promisification.js:52:21:52:24 | code | This command line depends on a $@. | promisification.js:49:18:49:25 | req.body | user-provided value |
|
||||
@@ -98,6 +99,8 @@
|
||||
| promisification.js:102:27:102:30 | code | promisification.js:99:18:99:25 | req.body | promisification.js:102:27:102:30 | code | This command line depends on a $@. | promisification.js:99:18:99:25 | req.body | user-provided value |
|
||||
| promisification.js:106:24:106:27 | code | promisification.js:99:18:99:25 | req.body | promisification.js:106:24:106:27 | code | This command line depends on a $@. | promisification.js:99:18:99:25 | req.body | user-provided value |
|
||||
| promisification.js:109:24:109:27 | code | promisification.js:99:18:99:25 | req.body | promisification.js:109:24:109:27 | code | This command line depends on a $@. | promisification.js:99:18:99:25 | req.body | user-provided value |
|
||||
| promisification.js:133:21:133:24 | code | promisification.js:130:18:130:25 | req.body | promisification.js:133:21:133:24 | code | This command line depends on a $@. | promisification.js:130:18:130:25 | req.body | user-provided value |
|
||||
| promisification.js:136:15:136:18 | code | promisification.js:130:18:130:25 | req.body | promisification.js:136:15:136:18 | code | This command line depends on a $@. | promisification.js:130:18:130:25 | req.body | user-provided value |
|
||||
| promisification.js:144:21:144:24 | code | promisification.js:141:18:141:25 | req.body | promisification.js:144:21:144:24 | code | This command line depends on a $@. | promisification.js:141:18:141:25 | req.body | user-provided value |
|
||||
| promisification.js:147:15:147:18 | code | promisification.js:141:18:141:25 | req.body | promisification.js:147:15:147:18 | code | This command line depends on a $@. | promisification.js:141:18:141:25 | req.body | user-provided value |
|
||||
| promisification.js:150:24:150:27 | code | promisification.js:141:18:141:25 | req.body | promisification.js:150:24:150:27 | code | This command line depends on a $@. | promisification.js:141:18:141:25 | req.body | user-provided value |
|
||||
@@ -282,6 +285,8 @@ edges
|
||||
| other.js:5:25:5:31 | req.url | other.js:5:15:5:38 | url.par ... , true) | provenance | |
|
||||
| promisification.js:21:11:21:14 | code | promisification.js:24:22:24:25 | code | provenance | |
|
||||
| promisification.js:21:18:21:25 | req.body | promisification.js:21:11:21:14 | code | provenance | |
|
||||
| promisification.js:30:11:30:14 | code | promisification.js:31:24:31:27 | code | provenance | |
|
||||
| promisification.js:30:18:30:25 | req.body | promisification.js:30:11:30:14 | code | provenance | |
|
||||
| promisification.js:37:11:37:14 | code | promisification.js:40:21:40:24 | code | provenance | |
|
||||
| promisification.js:37:11:37:14 | code | promisification.js:43:24:43:27 | code | provenance | |
|
||||
| promisification.js:37:18:37:25 | req.body | promisification.js:37:11:37:14 | code | provenance | |
|
||||
@@ -301,6 +306,9 @@ edges
|
||||
| promisification.js:99:11:99:14 | code | promisification.js:106:24:106:27 | code | provenance | |
|
||||
| promisification.js:99:11:99:14 | code | promisification.js:109:24:109:27 | code | provenance | |
|
||||
| promisification.js:99:18:99:25 | req.body | promisification.js:99:11:99:14 | code | provenance | |
|
||||
| promisification.js:130:11:130:14 | code | promisification.js:133:21:133:24 | code | provenance | |
|
||||
| promisification.js:130:11:130:14 | code | promisification.js:136:15:136:18 | code | provenance | |
|
||||
| promisification.js:130:18:130:25 | req.body | promisification.js:130:11:130:14 | code | provenance | |
|
||||
| promisification.js:141:11:141:14 | code | promisification.js:144:21:144:24 | code | provenance | |
|
||||
| promisification.js:141:11:141:14 | code | promisification.js:147:15:147:18 | code | provenance | |
|
||||
| promisification.js:141:11:141:14 | code | promisification.js:150:24:150:27 | code | provenance | |
|
||||
@@ -497,6 +505,9 @@ nodes
|
||||
| promisification.js:21:11:21:14 | code | semmle.label | code |
|
||||
| promisification.js:21:18:21:25 | req.body | semmle.label | req.body |
|
||||
| promisification.js:24:22:24:25 | code | semmle.label | code |
|
||||
| promisification.js:30:11:30:14 | code | semmle.label | code |
|
||||
| promisification.js:30:18:30:25 | req.body | semmle.label | req.body |
|
||||
| promisification.js:31:24:31:27 | code | semmle.label | code |
|
||||
| promisification.js:37:11:37:14 | code | semmle.label | code |
|
||||
| promisification.js:37:18:37:25 | req.body | semmle.label | req.body |
|
||||
| promisification.js:40:21:40:24 | code | semmle.label | code |
|
||||
@@ -520,6 +531,10 @@ nodes
|
||||
| promisification.js:102:27:102:30 | code | semmle.label | code |
|
||||
| promisification.js:106:24:106:27 | code | semmle.label | code |
|
||||
| promisification.js:109:24:109:27 | code | semmle.label | code |
|
||||
| promisification.js:130:11:130:14 | code | semmle.label | code |
|
||||
| promisification.js:130:18:130:25 | req.body | semmle.label | req.body |
|
||||
| promisification.js:133:21:133:24 | code | semmle.label | code |
|
||||
| promisification.js:136:15:136:18 | code | semmle.label | code |
|
||||
| promisification.js:141:11:141:14 | code | semmle.label | code |
|
||||
| promisification.js:141:18:141:25 | req.body | semmle.label | req.body |
|
||||
| promisification.js:144:21:144:24 | code | semmle.label | code |
|
||||
|
||||
@@ -27,8 +27,8 @@ app.post('/eval', async (req, res) => {
|
||||
app.post('/eval', async (req, res) => {
|
||||
const promisify2 = require('util.promisify-all');
|
||||
const promisifiedCp = promisify2(cp);
|
||||
const code = req.body; // $ MISSING: Source
|
||||
promisifiedCp.exec(code); // $ MISSING: Alert
|
||||
const code = req.body; // $ Source
|
||||
promisifiedCp.exec(code); // $ Alert
|
||||
});
|
||||
|
||||
|
||||
@@ -127,13 +127,13 @@ app.post('/eval', async (req, res) => {
|
||||
|
||||
app.post('/eval', async (req, res) => {
|
||||
const utilPromisify = require('util-promisify');
|
||||
const code = req.body; // $ MISSING: Source
|
||||
const code = req.body; // $ Source
|
||||
|
||||
const promisifiedExec = utilPromisify(cp.exec);
|
||||
promisifiedExec(code); // $ MISSING: Alert
|
||||
promisifiedExec(code); // $ Alert
|
||||
|
||||
const execAsync = utilPromisify(cp.exec.bind(cp));
|
||||
execAsync(code); // $ MISSING: Alert
|
||||
execAsync(code); // $ Alert
|
||||
});
|
||||
|
||||
app.post('/eval', async (req, res) => {
|
||||
|
||||
Reference in New Issue
Block a user