Merge pull request #19210 from Napalys/js/mkdirp

JS: Modeling of `mkdirp` functions
This commit is contained in:
Napalys Klicius
2025-04-09 13:43:37 +02:00
committed by GitHub
5 changed files with 73 additions and 13 deletions

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* Added support for additional `mkdirp` methods as sinks in path-injection queries.

View File

@@ -0,0 +1,7 @@
extensions:
- addsTo:
pack: codeql/javascript-all
extensible: sinkModel
data:
- ["mkdirp", "Member[nativeSync,native,manual,manualSync,mkdirpNative,mkdirpManual,mkdirpManualSync,mkdirpNativeSync,mkdirpSync,sync].Argument[0]", "path-injection"]
- ["mkdirp", "Argument[0]", "path-injection"]

View File

@@ -427,16 +427,3 @@ class Chokidar extends FileNameProducer, FileSystemAccess, API::CallNode {
)
}
}
/**
* A call to the [`mkdirp`](https://www.npmjs.com/package/mkdirp) library.
*/
private class Mkdirp extends FileSystemAccess, API::CallNode {
Mkdirp() {
this = API::moduleImport("mkdirp").getACall()
or
this = API::moduleImport("mkdirp").getMember("sync").getACall()
}
override DataFlow::Node getAPathArgument() { result = this.getArgument(0) }
}