File tree Expand file tree Collapse file tree 1 file changed +19
-0
lines changed
ruby/ql/lib/codeql/ruby/frameworks/rack/internal Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change 4
4
5
5
private import codeql.ruby.AST
6
6
private import codeql.ruby.ApiGraphs
7
+ private import codeql.ruby.Concepts
7
8
private import codeql.ruby.DataFlow
8
9
private import codeql.ruby.typetracking.TypeTracker
9
10
private import Response:: Private as RP
@@ -86,4 +87,22 @@ module App {
86
87
/** Gets a response returned from this request handler. */
87
88
RP:: PotentialResponseNode getAResponse ( ) { result = resp }
88
89
}
90
+
91
+ /** A read of the query string via `env['QUERY_STRING']`. */
92
+ private class EnvQueryStringRead extends Http:: Server:: RequestInputAccess:: Range {
93
+ EnvQueryStringRead ( ) {
94
+ exists ( RequestHandler handler , DataFlow:: ParameterNode env , ConstantValue key |
95
+ handler .getEnv ( ) = env
96
+ |
97
+ this = env .getAnElementRead ( key ) and
98
+ key .isStringlikeValue ( "QUERY_STRING" )
99
+ )
100
+ }
101
+
102
+ override string getSourceType ( ) { result = "Rack env" }
103
+
104
+ override Http:: Server:: RequestInputKind getKind ( ) {
105
+ result = Http:: Server:: parameterInputKind ( )
106
+ }
107
+ }
89
108
}
You can’t perform that action at this time.
0 commit comments