Skip to content

Commit ba9f3e2

Browse files
committed
Join ServletUrlRedirectSink with UrlRedirectSink
1 parent 88f4b22 commit ba9f3e2

File tree

4 files changed

+21
-26
lines changed

4 files changed

+21
-26
lines changed

java/ql/src/Security/CWE/CWE-601/ServletUrlRedirect.qll

Lines changed: 0 additions & 24 deletions
This file was deleted.

java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
import java
1414
import semmle.code.java.dataflow.FlowSources
15-
import ServletUrlRedirect
15+
import semmle.code.java.security.UrlRedirect
1616
import DataFlow::PathGraph
1717

1818
class UrlRedirectConfig extends TaintTracking::Configuration {

java/ql/src/Security/CWE/CWE-601/UrlRedirectLocal.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
import java
1414
import semmle.code.java.dataflow.FlowSources
15-
import ServletUrlRedirect
15+
import semmle.code.java.security.UrlRedirect
1616
import DataFlow::PathGraph
1717

1818
class UrlRedirectLocalConfig extends TaintTracking::Configuration {
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
11
import java
22
import semmle.code.java.dataflow.DataFlow
3+
import semmle.code.java.frameworks.Servlets
34

45
/** A URL redirection sink */
56
abstract class UrlRedirectSink extends DataFlow::Node { }
7+
8+
/** A Servlet URL redirection sink. */
9+
class ServletUrlRedirectSink extends UrlRedirectSink {
10+
ServletUrlRedirectSink() {
11+
exists(MethodAccess ma |
12+
ma.getMethod() instanceof HttpServletResponseSendRedirectMethod and
13+
this.asExpr() = ma.getArgument(0)
14+
)
15+
or
16+
exists(MethodAccess ma |
17+
ma.getMethod() instanceof ResponseSetHeaderMethod or
18+
ma.getMethod() instanceof ResponseAddHeaderMethod
19+
|
20+
ma.getArgument(0).(CompileTimeConstantExpr).getStringValue() = "Location" and
21+
this.asExpr() = ma.getArgument(1)
22+
)
23+
}
24+
}

0 commit comments

Comments
 (0)