@@ -37,6 +37,8 @@ extensions:
37
37
- ["java.lang", "AbstractStringBuilder", True, "AbstractStringBuilder", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
38
38
- ["java.lang", "AbstractStringBuilder", True, "append", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
39
39
- ["java.lang", "AbstractStringBuilder", True, "append", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
40
+ # 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.
41
+ - ["java.lang", "AbstractStringBuilder", True, "delete", "(int,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
40
42
- ["java.lang", "AbstractStringBuilder", True, "getChars", "", "", "Argument[this]", "Argument[2]", "taint", "manual"]
41
43
- ["java.lang", "AbstractStringBuilder", True, "insert", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
42
44
- ["java.lang", "AbstractStringBuilder", True, "insert", "", "", "Argument[1]", "Argument[this]", "taint", "manual"]
@@ -48,16 +50,21 @@ extensions:
48
50
- ["java.lang", "AbstractStringBuilder", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
49
51
- ["java.lang", "Appendable", True, "append", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
50
52
- ["java.lang", "Appendable", True, "append", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
53
+ - ["java.lang", "AssertionError", False, "AssertionError", "(Object)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
51
54
- ["java.lang", "CharSequence", True, "charAt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
52
55
- ["java.lang", "CharSequence", True, "subSequence", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
53
56
- ["java.lang", "CharSequence", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
57
+ - ["java.lang", "Class", False, "cast", "(Object)", "", "Argument[0]", "ReturnValue", "value", "manual"]
54
58
- ["java.lang", "Exception", False, "Exception", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
59
+ - ["java.lang", "Exception", False, "Exception", "(String,Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
60
+ - ["java.lang", "Exception", False, "Exception", "(String,Throwable)", "", "Argument[1]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "manual"]
55
61
- ["java.lang", "IllegalArgumentException", False, "IllegalArgumentException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
56
62
- ["java.lang", "IllegalStateException", False, "IllegalStateException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
57
63
- ["java.lang", "IndexOutOfBoundsException", False, "IndexOutOfBoundsException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
58
64
- ["java.lang", "Iterable", True, "forEach", "(Consumer)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"]
59
65
- ["java.lang", "Iterable", True, "iterator", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"]
60
66
- ["java.lang", "Iterable", True, "spliterator", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"]
67
+ - ["java.lang", "NullPointerException", False, "NullPointerException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
61
68
- ["java.lang", "Object", True, "clone", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"]
62
69
- ["java.lang", "Object", True, "clone", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"]
63
70
- ["java.lang", "Object", True, "clone", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"]
@@ -107,50 +114,105 @@ extensions:
107
114
- ["java.lang", "StringBuffer", True, "StringBuffer", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
108
115
- ["java.lang", "StringBuilder", True, "StringBuilder", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
109
116
- ["java.lang", "System", False, "arraycopy", "", "", "Argument[0]", "Argument[2]", "taint", "manual"]
117
+ - ["java.lang", "Thread", False, "Thread", "(Runnable)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
118
+ - ["java.lang", "Thread", False, "Thread", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Thread.name]", "value", "manual"]
119
+ - ["java.lang", "Thread", True, "getName", "()", "", "Argument[this].SyntheticField[java.lang.Thread.name]", "ReturnValue", "value", "manual"]
120
+ - ["java.lang", "ThreadLocal", True, "get", "()", "", "Argument[this].SyntheticField[java.lang.ThreadLocal.value]", "ReturnValue", "value", "manual"]
121
+ - ["java.lang", "ThreadLocal", True, "set", "(Object)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.ThreadLocal.value]", "value", "manual"]
110
122
- ["java.lang", "Throwable", False, "Throwable", "(Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "manual"]
123
+ - ["java.lang", "Throwable", False, "Throwable", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
111
124
- ["java.lang", "Throwable", True, "getCause", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "ReturnValue", "value", "manual"]
112
125
- ["java.lang", "Throwable", True, "getMessage", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "value", "manual"]
126
+ - ["java.lang", "Throwable", True, "getLocalizedMessage", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "value", "manual"]
127
+ - ["java.lang", "Throwable", True, "toString", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "taint", "manual"]
128
+
113
129
- addsTo :
114
130
pack : codeql/java-all
115
131
extensible : neutralModel
116
132
data :
117
133
- ["java.lang", "AbstractStringBuilder", "length", "()", "manual"]
134
+ - ["java.lang", "AbstractStringBuilder", "setCharAt", "(int,char)", "manual"]
135
+ - ["java.lang", "AbstractStringBuilder", "setLength", "(int)", "manual"]
136
+ - ["java.lang", "Boolean", "booleanValue", "()", "manual"]
118
137
- ["java.lang", "Boolean", "equals", "(Object)", "manual"]
138
+ - ["java.lang", "Boolean", "parseBoolean", "(String)", "manual"]
139
+ - ["java.lang", "Boolean", "valueOf", "(boolean)", "manual"]
140
+ - ["java.lang", "CharSequence", "length", "()", "manual"]
141
+ - ["java.lang", "Class", "forName", "(String)", "manual"]
142
+ - ["java.lang", "Class", "getCanonicalName", "()", "manual"]
119
143
- ["java.lang", "Class", "getClassLoader", "()", "manual"]
144
+ - ["java.lang", "Class", "getDeclaredConstructor", "(Class[])", "manual"] # This model may be changed to a taint step for an unsafe reflection query in the future.
145
+ - ["java.lang", "Class", "getDeclaredField", "(String)", "manual"] # This model may be changed to a taint step for an unsafe reflection query in the future.
146
+ - ["java.lang", "Class", "getMethod", "(String,Class[])", "manual"] # This model may be changed to a taint step for an unsafe reflection query in the future.
120
147
- ["java.lang", "Class", "getName", "()", "manual"]
148
+ - ["java.lang", "Class", "getResource", "(String)", "manual"]
149
+ - ["java.lang", "Class", "getResourceAsStream", "(String)", "manual"]
121
150
- ["java.lang", "Class", "getSimpleName", "()", "manual"]
122
151
- ["java.lang", "Class", "isAssignableFrom", "(Class)", "manual"]
152
+ - ["java.lang", "Class", "isInstance", "(Object)", "manual"]
153
+ - ["java.lang", "Class", "toString", "()", "manual"]
154
+ - ["java.lang", "ClassLoader", "getResource", "(String)", "manual"]
155
+ - ["java.lang", "ClassLoader", "getResourceAsStream", "(String)", "manual"]
123
156
- ["java.lang", "Enum", "Enum", "(String,int)", "manual"]
124
157
- ["java.lang", "Enum", "equals", "(Object)", "manual"]
158
+ - ["java.lang", "Enum", "hashCode", "()", "manual"]
125
159
- ["java.lang", "Enum", "name", "()", "manual"]
160
+ - ["java.lang", "Enum", "ordinal", "()", "manual"]
126
161
- ["java.lang", "Enum", "toString", "()", "manual"]
162
+ - ["java.lang", "Integer", "equals", "(Object)", "manual"]
127
163
- ["java.lang", "Long", "equals", "(Object)", "manual"]
128
164
- ["java.lang", "Object", "equals", "(Object)", "manual"]
129
165
- ["java.lang", "Object", "getClass", "()", "manual"]
130
166
- ["java.lang", "Object", "hashCode", "()", "manual"]
131
167
- ["java.lang", "Object", "toString", "()", "manual"]
168
+ - ["java.lang", "Runnable", "run", "()", "manual"]
169
+ - ["java.lang", "Runtime", "getRuntime", "()", "manual"]
170
+ - ["java.lang", "String", "compareTo", "(String)", "manual"]
132
171
- ["java.lang", "String", "contains", "(CharSequence)", "manual"]
133
172
- ["java.lang", "String", "endsWith", "(String)", "manual"]
134
173
- ["java.lang", "String", "equals", "(Object)", "manual"]
135
174
- ["java.lang", "String", "equalsIgnoreCase", "(String)", "manual"]
136
175
- ["java.lang", "String", "hashCode", "()", "manual"]
176
+ - ["java.lang", "String", "indexOf", "(int)", "manual"]
137
177
- ["java.lang", "String", "indexOf", "(String)", "manual"]
138
178
- ["java.lang", "String", "isEmpty", "()", "manual"]
179
+ - ["java.lang", "String", "lastIndexOf", "(int)", "manual"]
180
+ - ["java.lang", "String", "lastIndexOf", "(String)", "manual"]
139
181
- ["java.lang", "String", "length", "()", "manual"]
140
182
- ["java.lang", "String", "startsWith", "(String)", "manual"]
183
+ - ["java.lang", "String", "valueOf", "(boolean)", "manual"]
141
184
- ["java.lang", "System", "currentTimeMillis", "()", "manual"]
185
+ - ["java.lang", "System", "exit", "(int)", "manual"]
186
+ - ["java.lang", "System", "getenv", "(String)", "manual"]
187
+ - ["java.lang", "System", "identityHashCode", "(Object)", "manual"]
188
+ - ["java.lang", "System", "lineSeparator", "()", "manual"]
142
189
- ["java.lang", "System", "nanoTime", "()", "manual"]
143
190
- ["java.lang", "Thread", "currentThread", "()", "manual"]
191
+ - ["java.lang", "Thread", "getContextClassLoader", "()", "manual"]
192
+ - ["java.lang", "Thread", "interrupt", "()", "manual"]
144
193
- ["java.lang", "Thread", "sleep", "(long)", "manual"]
194
+ - ["java.lang", "Thread", "start", "()", "manual"]
145
195
# The below APIs have numeric flow and are currently being stored as neutral models.
146
196
# These may be changed to summary models with kinds "value-numeric" and "taint-numeric" (or similar) in the future.
147
- - ["java.lang", "Integer", "intValue", "()", "manual"] # taint-numeric
148
- - ["java.lang", "Integer", "parseInt", "(String)", "manual"] # taint-numeric
149
- - ["java.lang", "Integer", "toString", "(int)", "manual"] # taint-numeric
150
- - ["java.lang", "Integer", "valueOf", "(int)", "manual"] # taint-numeric
151
- - ["java.lang", "Long", "longValue", "()", "manual"] # taint-numeric
152
- - ["java.lang", "Long", "parseLong", "(String)", "manual"] # taint-numeric
153
- - ["java.lang", "Long", "toString", "()", "manual"] # taint-numeric
154
- - ["java.lang", "Math", "min", "(int,int)", "manual"] # value-numeric
155
- - ["java.lang", "String", "valueOf", "(int)", "manual"] # taint-numeric
156
- - ["java.lang", "String", "valueOf", "(long)", "manual"] # taint-numeric
197
+ - ["java.lang", "Double", "doubleToLongBits", "(double)", "manual"] # taint-numeric
198
+ - ["java.lang", "Double", "parseDouble", "(String)", "manual"] # taint-numeric
199
+ - ["java.lang", "Double", "valueOf", "(double)", "manual"] # taint-numeric
200
+ - ["java.lang", "Integer", "Integer", "(int)", "manual"] # taint-numeric
201
+ - ["java.lang", "Integer", "intValue", "()", "manual"] # taint-numeric
202
+ - ["java.lang", "Integer", "parseInt", "(String)", "manual"] # taint-numeric
203
+ - ["java.lang", "Integer", "toHexString", "(int)", "manual"] # taint-numeric
204
+ - ["java.lang", "Integer", "toString", "", "manual"] # taint-numeric
205
+ - ["java.lang", "Integer", "valueOf", "", "manual"] # taint-numeric
206
+ - ["java.lang", "Long", "Long", "(long)", "manual"] # taint-numeric
207
+ - ["java.lang", "Long", "intValue", "()", "manual"] # taint-numeric
208
+ - ["java.lang", "Long", "longValue", "()", "manual"] # taint-numeric
209
+ - ["java.lang", "Long", "parseLong", "(String)", "manual"] # taint-numeric
210
+ - ["java.lang", "Long", "toString", "", "manual"] # taint-numeric
211
+ - ["java.lang", "Long", "valueOf", "", "manual"] # taint-numeric
212
+ - ["java.lang", "Math", "max", "", "manual"] # value-numeric
213
+ - ["java.lang", "Math", "min", "", "manual"] # value-numeric
214
+ - ["java.lang", "Number", "doubleValue", "()", "manual"] # taint-numeric
215
+ - ["java.lang", "Number", "intValue", "()", "manual"] # taint-numeric
216
+ - ["java.lang", "Number", "longValue", "()", "manual"] # taint-numeric
217
+ - ["java.lang", "String", "valueOf", "(int)", "manual"] # taint-numeric
218
+ - ["java.lang", "String", "valueOf", "(long)", "manual"] # taint-numeric
0 commit comments