Skip to content

Commit d244d06

Browse files
committed
Convert trust boundary violation barrier and barrier guard to MaD
1 parent b92d0b4 commit d244d06

File tree

3 files changed

+39
-63
lines changed

3 files changed

+39
-63
lines changed
Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,42 @@
11
extensions:
2+
- addsTo:
3+
pack: codeql/java-all
4+
extensible: barrierGuardModel
5+
data:
6+
- ["org.owasp.esapi", "Validator", true, "isValidCreditCard", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
7+
- ["org.owasp.esapi", "Validator", true, "isValidDate", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
8+
- ["org.owasp.esapi", "Validator", true, "isValidDirectoryPath", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
9+
- ["org.owasp.esapi", "Validator", true, "isValidDouble", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
10+
- ["org.owasp.esapi", "Validator", true, "isValidFileContent", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
11+
- ["org.owasp.esapi", "Validator", true, "isValidFileName", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
12+
- ["org.owasp.esapi", "Validator", true, "isValidInput", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
13+
- ["org.owasp.esapi", "Validator", true, "isValidInteger", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
14+
- ["org.owasp.esapi", "Validator", true, "isValidListItem", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
15+
- ["org.owasp.esapi", "Validator", true, "isValidNumber", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
16+
- ["org.owasp.esapi", "Validator", true, "isValidPrintable", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
17+
- ["org.owasp.esapi", "Validator", true, "isValidRedirectLocation", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
18+
- ["org.owasp.esapi", "Validator", true, "isValidSafeHTML", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
19+
- ["org.owasp.esapi", "Validator", true, "isValidURI", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"]
20+
- addsTo:
21+
pack: codeql/java-all
22+
extensible: barrierModel
23+
data:
24+
- ["org.owasp.esapi", "Validator", true, "getValidCreditCard", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
25+
- ["org.owasp.esapi", "Validator", true, "getValidDate", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
26+
- ["org.owasp.esapi", "Validator", true, "getValidDirectoryPath", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
27+
- ["org.owasp.esapi", "Validator", true, "getValidDouble", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
28+
- ["org.owasp.esapi", "Validator", true, "getValidFileContent", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
29+
- ["org.owasp.esapi", "Validator", true, "getValidFileName", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
30+
- ["org.owasp.esapi", "Validator", true, "getValidInput", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
31+
- ["org.owasp.esapi", "Validator", true, "getValidInteger", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
32+
- ["org.owasp.esapi", "Validator", true, "getValidListItem", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
33+
- ["org.owasp.esapi", "Validator", true, "getValidNumber", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
34+
- ["org.owasp.esapi", "Validator", true, "getValidPrintable", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
35+
- ["org.owasp.esapi", "Validator", true, "getValidRedirectLocation", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
36+
- ["org.owasp.esapi", "Validator", true, "getValidSafeHTML", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
37+
- ["org.owasp.esapi", "Validator", true, "getValidURI", "", "", "ReturnValue", "trust-boundary-violation", "manual"]
238
- addsTo:
339
pack: codeql/java-all
440
extensible: summaryModel
541
data:
6-
- ["org.owasp.esapi", "Encoder", true, "encodeForHTML", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
42+
- ["org.owasp.esapi", "Encoder", true, "encodeForHTML", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"]

java/ql/lib/semmle/code/java/frameworks/owasp/Esapi.qll

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

java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ private import semmle.code.java.dataflow.DataFlow
55
private import semmle.code.java.controlflow.Guards
66
private import semmle.code.java.dataflow.ExternalFlow
77
private import semmle.code.java.dataflow.FlowSources
8-
private import semmle.code.java.frameworks.owasp.Esapi
98
private import semmle.code.java.security.Sanitizers
109

1110
/**
@@ -28,25 +27,8 @@ class TrustBoundaryViolationSink extends DataFlow::Node {
2827
*/
2928
abstract class TrustBoundaryValidationSanitizer extends DataFlow::Node { }
3029

31-
/**
32-
* A node validated by an OWASP ESAPI validation method.
33-
*/
34-
private class EsapiValidatedInputSanitizer extends TrustBoundaryValidationSanitizer {
35-
EsapiValidatedInputSanitizer() {
36-
this = DataFlow::BarrierGuard<esapiIsValidData/3>::getABarrierNode() or
37-
this.asExpr().(MethodCall).getMethod() instanceof EsapiGetValidMethod
38-
}
39-
}
40-
41-
/**
42-
* Holds if `g` is a guard that checks that `e` is valid data according to an OWASP ESAPI validation method.
43-
*/
44-
private predicate esapiIsValidData(Guard g, Expr e, boolean branch) {
45-
branch = true and
46-
exists(MethodCall ma | ma.getMethod() instanceof EsapiIsValidMethod |
47-
g = ma and
48-
e = ma.getArgument(1)
49-
)
30+
private class DefaultTrustBoundaryValidationSanitizer extends TrustBoundaryValidationSanitizer {
31+
DefaultTrustBoundaryValidationSanitizer() { barrierNode(this, "trust-boundary-violation") }
5032
}
5133

5234
/**

0 commit comments

Comments
 (0)