Merge pull request #18214 from jcogs33/jcogs33/java/file-getname-path-sanitizer

Java: add File.getName as a path injection sanitizer
This commit is contained in:
Jami
2024-12-11 10:18:02 -05:00
committed by GitHub
3 changed files with 34 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* Added `java.io.File.getName()` as a path injection sanitizer.

View File

@@ -337,3 +337,18 @@ private Method getSourceMethod(Method m) {
not exists(Method src | m = src.getKotlinParameterDefaultsProxy()) and
result = m
}
/**
* A sanitizer that protects against path injection vulnerabilities
* by extracting the final component of the user provided path.
*
* TODO: convert this class to models-as-data if sanitizer support is added
*/
private class FileGetNameSanitizer extends PathInjectionSanitizer {
FileGetNameSanitizer() {
exists(MethodCall mc |
mc.getMethod().hasQualifiedName("java.io", "File", "getName") and
this.asExpr() = mc
)
}
}