Skip to content

Commit 43bf0be

Browse files
authored
Merge pull request #19263 from Napalys/js/make-dir-lib
JS: Add support for `make-dir` package
2 parents eac14b9 + 171a846 commit 43bf0be

File tree

4 files changed

+30
-0
lines changed

4 files changed

+30
-0
lines changed
+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
category: minorAnalysis
3+
---
4+
* Added support for the `make-dir` package.

Diff for: javascript/ql/lib/ext/make-dir.model.yml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/javascript-all
4+
extensible: sinkModel
5+
data:
6+
- ["make-dir", "Member[makeDirectory,makeDirectorySync].Argument[0]", "path-injection"]

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

+9
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@
5252
| handlebars.js:11:32:11:39 | filePath | handlebars.js:29:46:29:60 | req.params.path | handlebars.js:11:32:11:39 | filePath | This path depends on a $@. | handlebars.js:29:46:29:60 | req.params.path | user-provided value |
5353
| handlebars.js:15:25:15:32 | filePath | handlebars.js:43:15:43:29 | req.params.path | handlebars.js:15:25:15:32 | filePath | This path depends on a $@. | handlebars.js:43:15:43:29 | req.params.path | user-provided value |
5454
| hapi.js:15:44:15:51 | filepath | hapi.js:14:30:14:51 | request ... ilepath | hapi.js:15:44:15:51 | filepath | This path depends on a $@. | hapi.js:14:30:14:51 | request ... ilepath | user-provided value |
55+
| make-dir.js:9:25:9:28 | file | make-dir.js:7:18:7:31 | req.query.file | make-dir.js:9:25:9:28 | file | This path depends on a $@. | make-dir.js:7:18:7:31 | req.query.file | user-provided value |
56+
| make-dir.js:10:23:10:26 | file | make-dir.js:7:18:7:31 | req.query.file | make-dir.js:10:23:10:26 | file | This path depends on a $@. | make-dir.js:7:18:7:31 | req.query.file | user-provided value |
5557
| mkdirp.js:11:12:11:18 | dirPath | mkdirp.js:9:42:9:59 | req.query.filename | mkdirp.js:11:12:11:18 | dirPath | This path depends on a $@. | mkdirp.js:9:42:9:59 | req.query.filename | user-provided value |
5658
| mkdirp.js:12:17:12:23 | dirPath | mkdirp.js:9:42:9:59 | req.query.filename | mkdirp.js:12:17:12:23 | dirPath | This path depends on a $@. | mkdirp.js:9:42:9:59 | req.query.filename | user-provided value |
5759
| mkdirp.js:13:23:13:29 | dirPath | mkdirp.js:9:42:9:59 | req.query.filename | mkdirp.js:13:23:13:29 | dirPath | This path depends on a $@. | mkdirp.js:9:42:9:59 | req.query.filename | user-provided value |
@@ -403,6 +405,9 @@ edges
403405
| handlebars.js:43:15:43:29 | req.params.path | handlebars.js:13:73:13:80 | filePath | provenance | |
404406
| hapi.js:14:19:14:51 | filepath | hapi.js:15:44:15:51 | filepath | provenance | |
405407
| hapi.js:14:30:14:51 | request ... ilepath | hapi.js:14:19:14:51 | filepath | provenance | |
408+
| make-dir.js:7:11:7:31 | file | make-dir.js:9:25:9:28 | file | provenance | |
409+
| make-dir.js:7:11:7:31 | file | make-dir.js:10:23:10:26 | file | provenance | |
410+
| make-dir.js:7:18:7:31 | req.query.file | make-dir.js:7:11:7:31 | file | provenance | |
406411
| mkdirp.js:9:11:9:76 | dirPath | mkdirp.js:11:12:11:18 | dirPath | provenance | |
407412
| mkdirp.js:9:11:9:76 | dirPath | mkdirp.js:12:17:12:23 | dirPath | provenance | |
408413
| mkdirp.js:9:11:9:76 | dirPath | mkdirp.js:13:23:13:29 | dirPath | provenance | |
@@ -949,6 +954,10 @@ nodes
949954
| hapi.js:14:19:14:51 | filepath | semmle.label | filepath |
950955
| hapi.js:14:30:14:51 | request ... ilepath | semmle.label | request ... ilepath |
951956
| hapi.js:15:44:15:51 | filepath | semmle.label | filepath |
957+
| make-dir.js:7:11:7:31 | file | semmle.label | file |
958+
| make-dir.js:7:18:7:31 | req.query.file | semmle.label | req.query.file |
959+
| make-dir.js:9:25:9:28 | file | semmle.label | file |
960+
| make-dir.js:10:23:10:26 | file | semmle.label | file |
952961
| mkdirp.js:9:11:9:76 | dirPath | semmle.label | dirPath |
953962
| mkdirp.js:9:21:9:76 | path.jo ... ltDir') | semmle.label | path.jo ... ltDir') |
954963
| mkdirp.js:9:42:9:59 | req.query.filename | semmle.label | req.query.filename |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { makeDirectory, makeDirectorySync } from 'make-dir';
2+
3+
const express = require('express');
4+
const app = express();
5+
6+
app.get('/makedir', async (req, res) => {
7+
const file = req.query.file; // $ Source
8+
9+
await makeDirectory(file); // $ Alert
10+
makeDirectorySync(file); // $ Alert
11+
});

0 commit comments

Comments
 (0)