Skip to content

Commit cd6339f

Browse files
committed
Java: Add Spring flow out of HttpEntity and HttpHeader
1 parent 93c28d4 commit cd6339f

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
@@ -393,6 +393,19 @@ private predicate taintPreservingQualifierToMethod(Method m) {
393393
exists(SpringUntrustedDataType dt |
394394
m.(GetterMethod) = dt.getAMethod()
395395
)
396+
or
397+
exists(SpringHttpEntity sre |
398+
m = sre.getAMethod() and
399+
m.getName().regexpMatch("getBody|getHeaders")
400+
)
401+
or
402+
exists(SpringHttpHeaders headers |
403+
m = headers.getAMethod() |
404+
m.getReturnType() instanceof TypeString
405+
or
406+
m.getReturnType().(RefType).getSourceDeclaration().getASourceSupertype*().hasQualifiedName("java.util", "List") and
407+
m.getReturnType().(ParameterizedType).getTypeArgument(0) instanceof TypeString
408+
)
396409
}
397410

398411
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)