Skip to content

Commit 65dd7eb

Browse files
Jami CogswellJami Cogswell
authored andcommitted
Java: add neutral models discovered with path-inj and ssrf heuristics
1 parent 5bc844c commit 65dd7eb

File tree

6 files changed

+47
-0
lines changed

6 files changed

+47
-0
lines changed

java/ql/lib/ext/java.io.model.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ extensions:
100100
pack: codeql/java-all
101101
extensible: neutralModel
102102
data:
103+
# summary neutrals
103104
- ["java.io", "Closeable", "close", "()", "summary", "manual"]
104105
- ["java.io", "DataOutput", "writeBoolean", "(boolean)", "summary", "manual"]
105106
- ["java.io", "File", "delete", "()", "summary", "manual"]
@@ -117,3 +118,7 @@ extensions:
117118
- ["java.io", "DataInput", "readLong", "()", "summary", "manual"] # taint-numeric
118119
- ["java.io", "DataOutput", "writeInt", "(int)", "summary", "manual"] # taint-numeric
119120
- ["java.io", "DataOutput", "writeLong", "(long)", "summary", "manual"] # taint-numeric
121+
122+
# sink neutrals
123+
- ["java.io", "File", "compareTo", "", "sink", "manual"]
124+
- ["java.io", "File", "exists", "()", "sink", "manual"]

java/ql/lib/ext/java.nio.file.model.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,22 @@ extensions:
8181
pack: codeql/java-all
8282
extensible: neutralModel
8383
data:
84+
# summary neutrals
8485
- ["java.nio.file", "Files", "exists", "(Path,LinkOption[])", "summary", "manual"]
86+
87+
# sink neutrals
88+
- ["java.nio.file", "Files" "exists", "", "sink", "manual"]
89+
- ["java.nio.file", "Files" "getLastModifiedTime", "", "sink", "manual"]
90+
- ["java.nio.file", "Files" "getOwner", "", "sink", "manual"]
91+
- ["java.nio.file", "Files" "getPosixFilePermissions", "", "sink", "manual"]
92+
- ["java.nio.file", "Files" "isDirectory", "", "sink", "manual"]
93+
- ["java.nio.file", "Files" "isExecutable", "", "sink", "manual"]
94+
- ["java.nio.file", "Files" "isHidden", "", "sink", "manual"]
95+
- ["java.nio.file", "Files" "isReadable", "", "sink", "manual"]
96+
- ["java.nio.file", "Files" "isRegularFile", "", "sink", "manual"]
97+
- ["java.nio.file", "Files" "isSameFile", "", "sink", "manual"]
98+
- ["java.nio.file", "Files" "isSymbolicLink", "", "sink", "manual"]
99+
- ["java.nio.file", "Files" "isWritable", "", "sink", "manual"]
100+
- ["java.nio.file", "Files" "notExists", "", "sink", "manual"]
101+
- ["java.nio.file", "Files" "setLastModifiedTime", "", "sink", "manual"]
102+
- ["java.nio.file", "Files" "size", "", "sink", "manual"]
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/java-all
4+
extensible: neutralModel
5+
data:
6+
- ["java.nio.file.spi", "FileSystemProvider" "isHidden", "", "manual"]
7+
- ["java.nio.file.spi", "FileSystemProvider" "isSameFile", "", "manual"]

java/ql/lib/ext/java.text.model.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ extensions:
33
pack: codeql/java-all
44
extensible: neutralModel
55
data:
6+
- ["java.text", "Collator" "compare", "", "manual"]
7+
- ["java.text", "Collator" "equals", "", "manual"]
8+
- ["java.text", "RuleBasedCollator", "compare", "", "manual"]
9+
610
# The below APIs have numeric flow and are currently being stored as neutral models.
711
# These may be changed to summary models with kinds "value-numeric" and "taint-numeric" (or similar) in the future.
812
- ["java.text", "DateFormat", "format", "(Date)", "summary", "manual"] # taint-numeric
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/java-all
4+
extensible: neutralModel
5+
data:
6+
- ["java.util.prefs", "AbstractPreferences", "nodeExists", "", "manual"]
7+
- ["java.util.prefs", "Preferences", "nodeExists", "", "manual"]
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/java-all
4+
extensible: neutralModel
5+
data:
6+
- ["org.apache.hc.client5.http.protocol", "RedirectLocations", "contains", "", "manual"]

0 commit comments

Comments
 (0)