Skip to content

Commit a00934a

Browse files
committed
Java: Add Spring flow out of HttpEntity and HttpHeader
1 parent b51c136 commit a00934a

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

java/ql/src/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,19 @@ private predicate taintPreservingQualifierToMethod(Method m) {
387387
exists(SpringUntrustedDataType dt |
388388
m.(GetterMethod) = dt.getAMethod()
389389
)
390+
or
391+
exists(SpringHttpEntity sre |
392+
m = sre.getAMethod() and
393+
m.getName().regexpMatch("getBody|getHeaders")
394+
)
395+
or
396+
exists(SpringHttpHeaders headers |
397+
m = headers.getAMethod() |
398+
m.getReturnType() instanceof TypeString
399+
or
400+
m.getReturnType().(RefType).getSourceDeclaration().getASourceSupertype*().hasQualifiedName("java.util", "List") and
401+
m.getReturnType().(ParameterizedType).getTypeArgument(0) instanceof TypeString
402+
)
390403
}
391404

392405
private class StringReplaceMethod extends Method {

java/ql/src/semmle/code/java/frameworks/spring/SpringHttp.qll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,8 @@ class SpringResponseEntityBodyBuilder extends Interface {
3232
getSourceDeclaration().getEnclosingType() = any(SpringResponseEntity sre) and
3333
hasName("BodyBuilder")
3434
}
35+
}
36+
37+
class SpringHttpHeaders extends Class {
38+
SpringHttpHeaders() { hasQualifiedName("org.springframework.http", "HttpHeaders") }
3539
}

0 commit comments

Comments
 (0)