Skip to content

Commit 119994b

Browse files
committed
Java: move File inspection methods to path-injection[read]
Per review feedback on #21741: File.canRead/canWrite/canExecute, exists/isDirectory/isFile/isHidden only inspect a path, so move them under the path-injection[read] sub-kind. Update TaintedPath.expected and the experimental CWE-073 expected to match.
1 parent 936f0c6 commit 119994b

3 files changed

Lines changed: 15 additions & 15 deletions

File tree

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@ extensions:
33
pack: codeql/java-all
44
extensible: sinkModel
55
data:
6-
- ["java.io", "File", True, "canExecute", "()", "", "Argument[this]", "path-injection", "manual"]
7-
- ["java.io", "File", True, "canRead", "()", "", "Argument[this]", "path-injection", "manual"]
8-
- ["java.io", "File", True, "canWrite", "()", "", "Argument[this]", "path-injection", "manual"]
6+
- ["java.io", "File", True, "canExecute", "()", "", "Argument[this]", "path-injection[read]", "manual"]
7+
- ["java.io", "File", True, "canRead", "()", "", "Argument[this]", "path-injection[read]", "manual"]
8+
- ["java.io", "File", True, "canWrite", "()", "", "Argument[this]", "path-injection[read]", "manual"]
99
- ["java.io", "File", True, "createNewFile", "()", "", "Argument[this]", "path-injection", "ai-manual"]
1010
- ["java.io", "File", True, "createTempFile", "(String,String,File)", "", "Argument[2]", "path-injection", "ai-manual"]
1111
- ["java.io", "File", True, "delete", "()", "", "Argument[this]", "path-injection", "manual"]
1212
- ["java.io", "File", True, "deleteOnExit", "()", "", "Argument[this]", "path-injection", "manual"]
13-
- ["java.io", "File", True, "exists", "()", "", "Argument[this]", "path-injection", "manual"]
14-
- ["java.io", "File", True, "isDirectory", "()", "", "Argument[this]", "path-injection", "manual"]
15-
- ["java.io", "File", True, "isFile", "()", "", "Argument[this]", "path-injection", "manual"]
16-
- ["java.io", "File", True, "isHidden", "()", "", "Argument[this]", "path-injection", "manual"]
13+
- ["java.io", "File", True, "exists", "()", "", "Argument[this]", "path-injection[read]", "manual"]
14+
- ["java.io", "File", True, "isDirectory", "()", "", "Argument[this]", "path-injection[read]", "manual"]
15+
- ["java.io", "File", True, "isFile", "()", "", "Argument[this]", "path-injection[read]", "manual"]
16+
- ["java.io", "File", True, "isHidden", "()", "", "Argument[this]", "path-injection[read]", "manual"]
1717
- ["java.io", "File", True, "mkdir", "()", "", "Argument[this]", "path-injection", "manual"]
1818
- ["java.io", "File", True, "mkdirs", "()", "", "Argument[this]", "path-injection", "manual"]
1919
- ["java.io", "File", True, "renameTo", "(File)", "", "Argument[0]", "path-injection", "ai-manual"]

java/ql/test/experimental/query-tests/security/CWE-073/FilePathInjection.expected

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ edges
99
| FilePathInjection.java:209:24:209:31 | filePath : String | FilePathInjection.java:209:15:209:32 | new File(...) : File | provenance | MaD:6 |
1010
| FilePathInjection.java:217:19:217:22 | file : File | FilePathInjection.java:177:50:177:58 | file : File | provenance | |
1111
models
12-
| 1 | Sink: java.io; File; true; exists; (); ; Argument[this]; path-injection; manual |
12+
| 1 | Sink: java.io; File; true; exists; (); ; Argument[this]; path-injection[read]; manual |
1313
| 2 | Sink: java.io; FileInputStream; true; FileInputStream; (File); ; Argument[0]; path-injection[read]; ai-manual |
1414
| 3 | Sink: java.io; FileOutputStream; false; FileOutputStream; ; ; Argument[0]; path-injection; manual |
1515
| 4 | Source: com.jfinal.core; Controller; true; getPara; ; ; ReturnValue; remote; manual |

java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -235,17 +235,17 @@ edges
235235
| Test.java:199:26:199:33 | source(...) : String | Test.java:199:19:199:33 | (...)... | provenance | Sink:MaD:59 |
236236
| Test.java:204:29:204:36 | source(...) : String | Test.java:204:20:204:36 | (...)... | provenance | Sink:MaD:68 |
237237
models
238-
| 1 | Sink: java.io; File; true; canExecute; (); ; Argument[this]; path-injection; manual |
239-
| 2 | Sink: java.io; File; true; canRead; (); ; Argument[this]; path-injection; manual |
240-
| 3 | Sink: java.io; File; true; canWrite; (); ; Argument[this]; path-injection; manual |
238+
| 1 | Sink: java.io; File; true; canExecute; (); ; Argument[this]; path-injection[read]; manual |
239+
| 2 | Sink: java.io; File; true; canRead; (); ; Argument[this]; path-injection[read]; manual |
240+
| 3 | Sink: java.io; File; true; canWrite; (); ; Argument[this]; path-injection[read]; manual |
241241
| 4 | Sink: java.io; File; true; createNewFile; (); ; Argument[this]; path-injection; ai-manual |
242242
| 5 | Sink: java.io; File; true; createTempFile; (String,String,File); ; Argument[2]; path-injection; ai-manual |
243243
| 6 | Sink: java.io; File; true; delete; (); ; Argument[this]; path-injection; manual |
244244
| 7 | Sink: java.io; File; true; deleteOnExit; (); ; Argument[this]; path-injection; manual |
245-
| 8 | Sink: java.io; File; true; exists; (); ; Argument[this]; path-injection; manual |
246-
| 9 | Sink: java.io; File; true; isDirectory; (); ; Argument[this]; path-injection; manual |
247-
| 10 | Sink: java.io; File; true; isFile; (); ; Argument[this]; path-injection; manual |
248-
| 11 | Sink: java.io; File; true; isHidden; (); ; Argument[this]; path-injection; manual |
245+
| 8 | Sink: java.io; File; true; exists; (); ; Argument[this]; path-injection[read]; manual |
246+
| 9 | Sink: java.io; File; true; isDirectory; (); ; Argument[this]; path-injection[read]; manual |
247+
| 10 | Sink: java.io; File; true; isFile; (); ; Argument[this]; path-injection[read]; manual |
248+
| 11 | Sink: java.io; File; true; isHidden; (); ; Argument[this]; path-injection[read]; manual |
249249
| 12 | Sink: java.io; File; true; mkdir; (); ; Argument[this]; path-injection; manual |
250250
| 13 | Sink: java.io; File; true; mkdirs; (); ; Argument[this]; path-injection; manual |
251251
| 14 | Sink: java.io; File; true; renameTo; (File); ; Argument[0]; path-injection; ai-manual |

0 commit comments

Comments
 (0)