Skip to content

Commit bda938c

Browse files
author
Stephan Brandauer
committed
Update MaD Declarations after Triage
1 parent dc26dc8 commit bda938c

11 files changed

+58
-3
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
category: minorAnalysis
3+
---
4+
* Added models for the following packages:
5+
6+
* java.io
7+
* java.lang
8+
* java.net
9+
* java.nio.channels
10+
* java.nio.file
11+
* java.util.jar
12+
* java.util.zip
13+
* okhttp3
14+
* org.gradle.api.file
15+
* retrofit2

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ extensions:
33
pack: codeql/java-all
44
extensible: sinkModel
55
data:
6+
- ["java.io", "File", True, "createNewFile", "()", "", "Argument[undefined]", "path-injection", "ai-manual"]
67
- ["java.io", "File", True, "createTempFile", "(String,String,File)", "", "Argument[2]", "path-injection", "ai-manual"]
78
- ["java.io", "File", True, "renameTo", "(File)", "", "Argument[0]", "path-injection", "ai-manual"]
89
- ["java.io", "FileInputStream", True, "FileInputStream", "(File)", "", "Argument[0]", "path-injection", "ai-manual"]
@@ -118,7 +119,6 @@ extensions:
118119
- ["java.io", "DataInput", "readLong", "()", "summary", "manual"] # taint-numeric
119120
- ["java.io", "DataOutput", "writeInt", "(int)", "summary", "manual"] # taint-numeric
120121
- ["java.io", "DataOutput", "writeLong", "(long)", "summary", "manual"] # taint-numeric
121-
122122
# sink neutrals
123123
- ["java.io", "File", "compareTo", "", "sink", "hq-manual"]
124124
- ["java.io", "File", "exists", "()", "sink", "hq-manual"]

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ extensions:
4444
- ["java.lang", "AbstractStringBuilder", True, "AbstractStringBuilder", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
4545
- ["java.lang", "AbstractStringBuilder", True, "append", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
4646
- ["java.lang", "AbstractStringBuilder", True, "append", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
47+
- ["java.lang", "ProcessBuilder", False, "environment", "()", "", "Argument[undefined]", "ReturnValue", "taint", "ai-manual"]
4748
# When `WithoutElement` is implemented for Java, `java.lang.AbstractStringBuilder#delete` might require a `taint` step of the form `Argument[this].WithoutElement -> Argument[this]` in addition to the below `value` step.
4849
- ["java.lang", "AbstractStringBuilder", True, "delete", "(int,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
4950
- ["java.lang", "AbstractStringBuilder", True, "getChars", "", "", "Argument[this]", "Argument[2]", "taint", "manual"]
@@ -133,7 +134,6 @@ extensions:
133134
- ["java.lang", "Throwable", True, "getLocalizedMessage", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "value", "manual"]
134135
- ["java.lang", "Throwable", True, "toString", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "taint", "manual"]
135136
- ["java.lang", "UnsupportedOperationException", False, "UnsupportedOperationException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
136-
137137
- addsTo:
138138
pack: codeql/java-all
139139
extensible: neutralModel

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ extensions:
4343
- ["java.net", "URI", False, "toASCIIString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
4444
- ["java.net", "URI", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
4545
- ["java.net", "URI", False, "toURL", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
46+
- ["java.net", "URL", False, "getFile", "()", "", "Argument[undefined]", "ReturnValue", "taint", "ai-manual"]
47+
- ["java.net", "URL", False, "getPath", "()", "", "Argument[undefined]", "ReturnValue", "taint", "ai-manual"]
4648
- ["java.net", "URL", False, "URL", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
4749
- ["java.net", "URL", False, "URL", "(URL,String)", "", "Argument[0]", "Argument[this]", "taint", "ai-manual"]
4850
- ["java.net", "URL", False, "URL", "(URL,String)", "", "Argument[1]", "Argument[this]", "taint", "ai-manual"] # @atorralba: review for consistency

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,11 @@ extensions:
55
data:
66
- ["java.nio.channels", "Channels", False, "newChannel", "(InputStream)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
77
- ["java.nio.channels", "ReadableByteChannel", True, "read", "(ByteBuffer)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
8+
- addsTo:
9+
pack: codeql/java-all
10+
extensible: sinkModel
11+
data:
12+
- ["java.nio.channels", "FileChannel", False, "open", "(Path,OpenOption[])", "", "Argument[0]", "path-injection", "ai-manual"]
13+
- ["java.nio.channels", "FileChannel", False, "open", "(Path,Set,FileAttribute[])", "", "Argument[0]", "path-injection", "ai-manual"]
14+
- ["java.nio.channels", "FileChannel", True, "write", "(ByteBuffer,long)", "", "Argument[0]", "file-content-store", "ai-manual"]
15+
- ["java.nio.channels", "FileChannel", True, "write", "(ByteBuffer)", "", "Argument[0]", "file-content-store", "ai-manual"]

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ extensions:
4040
- ["java.nio.file", "Files", True, "delete", "(Path)", "", "Argument[0]", "path-injection", "ai-manual"]
4141
- ["java.nio.file", "Files", True, "newInputStream", "(Path,OpenOption[])", "", "Argument[0]", "path-injection", "ai-manual"]
4242
- ["java.nio.file", "Files", True, "newOutputStream", "(Path,OpenOption[])", "", "Argument[0]", "path-injection", "ai-manual"]
43+
- ["java.nio.file", "FileSystems", False, "newFileSystem", "(URI,Map)", "", "Argument[0]", "path-injection", "ai-manual"]
44+
- ["java.nio.file", "FileSystems", False, "newFileSystem", "(URI,Map)", "", "Argument[0]", "request-forgery", "ai-manual"]
4345
- ["java.nio.file", "SecureDirectoryStream", True, "deleteDirectory", "(Path)", "", "Argument[0]", "path-injection", "ai-manual"]
4446
- ["java.nio.file", "SecureDirectoryStream", True, "deleteFile", "(Path)", "", "Argument[0]", "path-injection", "ai-manual"]
4547
- addsTo:
@@ -66,6 +68,7 @@ extensions:
6668
- ["java.nio.file", "Path", True, "relativize", "(Path)", "", "Argument[0]", "ReturnValue", "taint", "ai-manual"]
6769
- ["java.nio.file", "Path", True, "resolve", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
6870
- ["java.nio.file", "Path", True, "resolve", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
71+
- ["java.nio.file", "Path", True, "resolveSibling", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-manual"]
6972
- ["java.nio.file", "Path", True, "toAbsolutePath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
7073
- ["java.nio.file", "Path", False, "toFile", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
7174
- ["java.nio.file", "Path", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
@@ -83,7 +86,6 @@ extensions:
8386
data:
8487
# summary neutrals
8588
- ["java.nio.file", "Files", "exists", "(Path,LinkOption[])", "summary", "manual"]
86-
8789
# sink neutrals
8890
- ["java.nio.file", "Files", "exists", "", "sink", "hq-manual"]
8991
- ["java.nio.file", "Files", "getLastModifiedTime", "", "sink", "hq-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: sinkModel
5+
data:
6+
- ["java.util.jar", "JarFile", True, "getInputStream", "(ZipEntry)", "", "Argument[0]", "path-injection", "ai-manual"]

java/ql/lib/ext/java.util.zip.model.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,11 @@ extensions:
44
extensible: summaryModel
55
data:
66
- ["java.util.zip", "GZIPInputStream", False, "GZIPInputStream", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
7+
- ["java.util.zip", "ZipEntry", True, "ZipEntry", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-manual"]
78
- ["java.util.zip", "ZipInputStream", False, "ZipInputStream", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
9+
- addsTo:
10+
pack: codeql/java-all
11+
extensible: sinkModel
12+
data:
13+
- ["java.util.zip", "ZipFile", True, "getEntry", "(String)", "", "Argument[0]", "path-injection", "ai-manual"]
14+
- ["java.util.zip", "ZipOutputStream", True, "putNextEntry", "(ZipEntry)", "", "Argument[0]", "path-injection", "ai-manual"] # may also be file-content-store?

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ extensions:
66
- ["okhttp3", "OkHttpClient", True, "newCall", "(Request)", "", "Argument[0]", "request-forgery", "ai-manual"]
77
- ["okhttp3", "OkHttpClient", True, "newWebSocket", "(Request,WebSocketListener)", "", "Argument[0]", "request-forgery", "ai-manual"]
88
- ["okhttp3", "Request", True, "Request", "", "", "Argument[0]", "request-forgery", "manual"]
9+
- ["okhttp3", "Request$Builder", False, "get", "()", "", "Argument[undefined]", "request-forgery", "ai-manual"] # this creates a GET request
910
- ["okhttp3", "Request$Builder", True, "url", "", "", "Argument[0]", "request-forgery", "manual"]
1011
- addsTo:
1112
pack: codeql/java-all
@@ -58,3 +59,5 @@ extensions:
5859
- ["okhttp3", "HttpUrl$Builder", False, "setQueryParameter", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
5960
- ["okhttp3", "HttpUrl$Builder", False, "setQueryParameter", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
6061
- ["okhttp3", "HttpUrl$Builder", False, "username", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
62+
- ["okhttp3", "Request$Builder", False, "get", "()", "", "Argument[undefined]", "ReturnValue", "taint", "ai-manual"] # this creates a GET request
63+
- ["okhttp3", "Request$Builder", False, "url", "(String)", "", "Argument[undefined]", "ReturnValue", "taint", "ai-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: summaryModel
5+
data:
6+
- ["org.gradle.api.file", "Directory", True, "getAsFile", "()", "", "Argument[undefined]", "ReturnValue", "taint", "ai-manual"]
7+
- ["org.gradle.api.file", "DirectoryProperty", True, "file", "(String)", "", "Argument[undefined]", "ReturnValue", "taint", "ai-manual"]

0 commit comments

Comments
 (0)