Skip to content

Commit 55c74b2

Browse files
committed
Added support for emptydir functions from fs-extra.
1 parent e386448 commit 55c74b2

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ module NodeJSLib {
462462
or
463463
methodName = ["ensureSymlink", "ensureSymlinkSync"] and i = [0, 1]
464464
or
465-
methodName = ["emptyDir", "emptyDirSync"] and i = 0
465+
methodName = ["emptyDir", "emptyDirSync", "emptydir", "emptydirSync"] and i = 0
466466
or
467467
methodName = ["pathExists", "pathExistsSync"] and i = 0
468468
}

javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/TaintedPath.expected

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@
6262
| more-fs-extra.js:17:31:17:38 | filename | more-fs-extra.js:8:26:8:33 | req.body | more-fs-extra.js:17:31:17:38 | filename | This path depends on a $@. | more-fs-extra.js:8:26:8:33 | req.body | user-provided value |
6363
| more-fs-extra.js:18:15:18:22 | filename | more-fs-extra.js:8:26:8:33 | req.body | more-fs-extra.js:18:15:18:22 | filename | This path depends on a $@. | more-fs-extra.js:8:26:8:33 | req.body | user-provided value |
6464
| more-fs-extra.js:19:25:19:32 | filename | more-fs-extra.js:8:26:8:33 | req.body | more-fs-extra.js:19:25:19:32 | filename | This path depends on a $@. | more-fs-extra.js:8:26:8:33 | req.body | user-provided value |
65+
| more-fs-extra.js:20:21:20:28 | filename | more-fs-extra.js:8:26:8:33 | req.body | more-fs-extra.js:20:21:20:28 | filename | This path depends on a $@. | more-fs-extra.js:8:26:8:33 | req.body | user-provided value |
66+
| more-fs-extra.js:21:17:21:24 | filename | more-fs-extra.js:8:26:8:33 | req.body | more-fs-extra.js:21:17:21:24 | filename | This path depends on a $@. | more-fs-extra.js:8:26:8:33 | req.body | user-provided value |
6567
| normalizedPaths.js:13:19:13:22 | path | normalizedPaths.js:11:14:11:27 | req.query.path | normalizedPaths.js:13:19:13:22 | path | This path depends on a $@. | normalizedPaths.js:11:14:11:27 | req.query.path | user-provided value |
6668
| normalizedPaths.js:14:19:14:29 | './' + path | normalizedPaths.js:11:14:11:27 | req.query.path | normalizedPaths.js:14:19:14:29 | './' + path | This path depends on a $@. | normalizedPaths.js:11:14:11:27 | req.query.path | user-provided value |
6769
| normalizedPaths.js:15:19:15:38 | path + '/index.html' | normalizedPaths.js:11:14:11:27 | req.query.path | normalizedPaths.js:15:19:15:38 | path + '/index.html' | This path depends on a $@. | normalizedPaths.js:11:14:11:27 | req.query.path | user-provided value |
@@ -368,6 +370,8 @@ edges
368370
| more-fs-extra.js:8:11:8:33 | filename | more-fs-extra.js:17:31:17:38 | filename | provenance | |
369371
| more-fs-extra.js:8:11:8:33 | filename | more-fs-extra.js:18:15:18:22 | filename | provenance | |
370372
| more-fs-extra.js:8:11:8:33 | filename | more-fs-extra.js:19:25:19:32 | filename | provenance | |
373+
| more-fs-extra.js:8:11:8:33 | filename | more-fs-extra.js:20:21:20:28 | filename | provenance | |
374+
| more-fs-extra.js:8:11:8:33 | filename | more-fs-extra.js:21:17:21:24 | filename | provenance | |
371375
| more-fs-extra.js:8:13:8:20 | filename | more-fs-extra.js:8:11:8:33 | filename | provenance | |
372376
| more-fs-extra.js:8:26:8:33 | req.body | more-fs-extra.js:8:11:8:22 | { filename } | provenance | |
373377
| normalizedPaths.js:11:7:11:27 | path | normalizedPaths.js:13:19:13:22 | path | provenance | |
@@ -864,6 +868,8 @@ nodes
864868
| more-fs-extra.js:17:31:17:38 | filename | semmle.label | filename |
865869
| more-fs-extra.js:18:15:18:22 | filename | semmle.label | filename |
866870
| more-fs-extra.js:19:25:19:32 | filename | semmle.label | filename |
871+
| more-fs-extra.js:20:21:20:28 | filename | semmle.label | filename |
872+
| more-fs-extra.js:21:17:21:24 | filename | semmle.label | filename |
867873
| normalizedPaths.js:11:7:11:27 | path | semmle.label | path |
868874
| normalizedPaths.js:11:14:11:27 | req.query.path | semmle.label | req.query.path |
869875
| normalizedPaths.js:13:19:13:22 | path | semmle.label | path |

javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/more-fs-extra.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ app.post('/rmsync', (req, res) => {
1717
fs.copyFileSync("source", filename); // $ Alert
1818
fs.cpSync(filename, "destination"); // $ Alert
1919
fs.cpSync("source", filename); // $ Alert
20-
fs.emptydirSync(filename); // MISSING: $ Alert
21-
fs.emptydir(filename); // MISSING: $ Alert
20+
fs.emptydirSync(filename); // $ Alert
21+
fs.emptydir(filename); // $ Alert
2222
fs.opendir(filename); // $ MISSING: Alert
2323
fs.opendirSync(filename); // $ MISSING: Alert
2424
fs.openAsBlob(filename); // $ MISSING: Alert

0 commit comments

Comments
 (0)