File tree Expand file tree Collapse file tree 2 files changed +25
-6
lines changed
java/ql/src/Security/CWE/CWE-113 Expand file tree Collapse file tree 2 files changed +25
-6
lines changed Original file line number Diff line number Diff line change @@ -5,5 +5,11 @@ public class ResponseSplitting {
55 private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders (false );
66
77 // GOOD: Verifies headers passed don't contain CRLF characters
8- private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders ();
8+ private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders ();
9+
10+ // BAD: Disables the internal response splitting verification
11+ private final DefaultHttpResponse badResponse = new DefaultHttpResponse (version , httpResponseStatus , false );
12+
13+ // GOOD: Verifies headers passed don't contain CRLF characters
14+ private final DefaultHttpResponse goodResponse = new DefaultHttpResponse (version , httpResponseStatus );
915}
Original file line number Diff line number Diff line change 1313
1414import java
1515
16- from ClassInstanceExpr new
17- where
18- new .getConstructedType ( ) .hasQualifiedName ( "io.netty.handler.codec.http" , "DefaultHttpHeaders" ) and
19- new .getArgument ( 0 ) .getProperExpr ( ) .( BooleanLiteral ) .getBooleanValue ( ) = false
20- select new , "Response-splitting vulnerability due to verification being disabled."
16+ abstract private class InsecureNettyObjectCreation extends ClassInstanceExpr { }
17+
18+ private class InsecureDefaultHttpHeadersClassInstantiation extends InsecureNettyObjectCreation {
19+ InsecureDefaultHttpHeadersClassInstantiation ( ) {
20+ getConstructedType ( ) .hasQualifiedName ( "io.netty.handler.codec.http" , "DefaultHttpHeaders" ) and
21+ getArgument ( 0 ) .( CompileTimeConstantExpr ) .getBooleanValue ( ) = false
22+ }
23+ }
24+
25+ private class InsecureDefaultHttpResponseClassInstantiation extends InsecureNettyObjectCreation {
26+ InsecureDefaultHttpResponseClassInstantiation ( ) {
27+ getConstructedType ( ) .hasQualifiedName ( "io.netty.handler.codec.http" , "DefaultHttpResponse" ) and
28+ getArgument ( 2 ) .( CompileTimeConstantExpr ) .getBooleanValue ( ) = false
29+ }
30+ }
31+
32+ from InsecureNettyObjectCreation new
33+ select new , "Response-splitting vulnerability due to header value verification being disabled."
You can’t perform that action at this time.
0 commit comments