Skip to content

Commit fed7142

Browse files
committed
Update the query and add comments
1 parent 48f0548 commit fed7142

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

java/ql/src/Security/CWE/CWE-502/UnsafeDeserialization.ql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,23 +72,23 @@ class UnsafeDeserializationConfig extends TaintTracking::Configuration {
7272
ma.getMethod() instanceof FlexjsonDeserializeMethod or
7373
ma.getMethod() instanceof JoddJsonParseMethod
7474
) and
75-
node.asExpr() = ma.getArgument(0) and
75+
node.asExpr() = ma.getAnArgument() and
7676
(
7777
ma.getArgument(1)
7878
.(TypeLiteral)
7979
.getType()
8080
.(ParameterizedType)
8181
.getATypeArgument()
8282
.(Class)
83-
.isFinal()
83+
.isFinal() // jodd.json.JsonParser parser = new JsonParser(); parser.allowClass("com.example.*"); parser.setClassMetadataName("class"); User obj = parser.parse(json, User.class);
8484
or
8585
exists(
8686
MethodAccess dma // Specified class type
8787
|
8888
dma.getMethod() instanceof DeserializerUseMethod and
8989
(
9090
ma.getQualifier() = dma or
91-
ma.getQualifier().(VarAccess).getVariable().getAnAccess() = dma.getQualifier()
91+
ma.getQualifier().(VarAccess).getVariable().getAnAccess() = dma.getQualifier() // new flexjson.JSONDeserializer<Person>().use(null, Person.class).deserialize(json)
9292
)
9393
)
9494
)

java/ql/src/semmle/code/java/frameworks/Flexjson.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class FlexjsonDeserializeMethod extends Method {
1919
FlexjsonDeserializeMethod() {
2020
this.getDeclaringType().getSourceDeclaration().getASourceSupertype*() instanceof
2121
FlexjsonDeserializer and
22-
this.getName().matches("deserialize%")
22+
this.getName() = ["deserialize", "deserializeInto"]
2323
}
2424
}
2525

0 commit comments

Comments
 (0)