Skip to content

Commit b96540c

Browse files
committed
Java: Convert permissve-dot-regex-query to data extensions.
1 parent 91840c6 commit b96540c

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

java/ql/lib/ext/experimental/javax.servlet.http.model.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,13 @@ extensions:
44
extensible: extExperimentalSourceModel
55
data:
66
- ["javax.servlet.http", "HttpServletRequest", True, "getServletPath", "", "", "ReturnValue", "remote", "manual", "unsafe-url-forward"]
7+
- addsTo:
8+
pack: codeql/java-all
9+
extensible: extExperimentalSourceModel
10+
data:
11+
- ["javax.servlet.http", "HttpServletRequest", False, "getPathInfo", "()", "", "ReturnValue", "uri-path", "manual", "permissive-dot-regex-query"]
12+
- ["javax.servlet.http", "HttpServletRequest", False, "getPathTranslated", "()", "", "ReturnValue", "uri-path", "manual", "permissive-dot-regex-query"]
13+
- ["javax.servlet.http", "HttpServletRequest", False, "getRequestURI", "()", "", "ReturnValue", "uri-path", "manual", "permissive-dot-regex-query"]
14+
- ["javax.servlet.http", "HttpServletRequest", False, "getRequestURL", "()", "", "ReturnValue", "uri-path", "manual", "permissive-dot-regex-query"]
15+
- ["javax.servlet.http", "HttpServletRequest", False, "getServletPath", "()", "", "ReturnValue", "uri-path", "manual", "permissive-dot-regex-query"]
16+

java/ql/src/experimental/Security/CWE/CWE-625/PermissiveDotRegexQuery.qll

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ import semmle.code.java.controlflow.Guards
88
import semmle.code.java.security.UrlRedirect
99
import Regex
1010

11+
private class ActivateModels extends ActiveExperimentalModels {
12+
ActivateModels() { this = "permissive-dot-regex-query" }
13+
}
14+
1115
/** A string that ends with `.*` not prefixed with `\`. */
1216
private class PermissiveDotStr extends StringLiteral {
1317
PermissiveDotStr() {
@@ -19,20 +23,6 @@ private class PermissiveDotStr extends StringLiteral {
1923
}
2024
}
2125

22-
/** Remote flow sources obtained from the URI of a servlet request. */
23-
private class GetServletUriSource extends SourceModelCsv {
24-
override predicate row(string row) {
25-
row =
26-
[
27-
"javax.servlet.http;HttpServletRequest;false;getPathInfo;();;ReturnValue;uri-path;manual",
28-
"javax.servlet.http;HttpServletRequest;false;getPathTranslated;();;ReturnValue;uri-path;manual",
29-
"javax.servlet.http;HttpServletRequest;false;getRequestURI;();;ReturnValue;uri-path;manual",
30-
"javax.servlet.http;HttpServletRequest;false;getRequestURL;();;ReturnValue;uri-path;manual",
31-
"javax.servlet.http;HttpServletRequest;false;getServletPath;();;ReturnValue;uri-path;manual"
32-
]
33-
}
34-
}
35-
3626
/** The qualifier of a request dispatch method call. */
3727
private class UrlDispatchSink extends UrlRedirectSink {
3828
UrlDispatchSink() {

0 commit comments

Comments
 (0)