@@ -94,19 +94,19 @@ module UntrustedToAllowOriginConfigFlow = TaintTracking::Global<UntrustedToAllow
94
94
* also has another HeaderWrite that sets a `Access-Control-Allow-Credentials`
95
95
* header to `true`.
96
96
*/
97
- predicate allowCredentialsIsSetToTrue ( DataFlow:: ExprNode allowOrigin ) {
97
+ predicate allowCredentialsIsSetToTrue ( DataFlow:: ExprNode allowOriginHW ) {
98
98
exists ( AllowCredentialsHeaderWrite allowCredentialsHW |
99
99
allowCredentialsHW .getHeaderValue ( ) .toLowerCase ( ) = "true"
100
100
|
101
- allowOrigin .( AllowOriginHeaderWrite ) .getResponseWriter ( ) =
101
+ allowOriginHW .( AllowOriginHeaderWrite ) .getResponseWriter ( ) =
102
102
allowCredentialsHW .getResponseWriter ( )
103
103
)
104
104
or
105
105
exists ( GinCors:: AllowCredentialsWrite allowCredentialsGin |
106
106
allowCredentialsGin .toString ( ) = "true"
107
107
|
108
108
//flow only goes in one direction so fix this before PR
109
- allowCredentialsGin .getConfig ( ) = allowOrigin .( GinCors:: AllowOriginsWrite ) .getConfig ( ) and
109
+ allowCredentialsGin .getConfig ( ) = allowOriginHW .( GinCors:: AllowOriginsWrite ) .getConfig ( ) and
110
110
not exists ( GinCors:: AllowAllOriginsWrite allowAllOrigins |
111
111
allowAllOrigins .toString ( ) = "true" and
112
112
allowCredentialsGin .getConfig ( ) = allowAllOrigins .getConfig ( )
@@ -115,17 +115,17 @@ predicate allowCredentialsIsSetToTrue(DataFlow::ExprNode allowOrigin) {
115
115
}
116
116
117
117
/**
118
- * Holds if the provided `allowOrigin ` HeaderWrite's value is set using an
118
+ * Holds if the provided `allowOriginHW ` HeaderWrite's value is set using an
119
119
* UntrustedFlowSource.
120
120
* The `message` parameter is populated with the warning message to be returned by the query.
121
121
*/
122
- predicate flowsFromUntrustedToAllowOrigin ( DataFlow:: ExprNode allowOrigin , string message ) {
122
+ predicate flowsFromUntrustedToAllowOrigin ( DataFlow:: ExprNode allowOriginHW , string message ) {
123
123
exists ( DataFlow:: Node sink |
124
124
UntrustedToAllowOriginHeaderFlow:: flowTo ( sink ) and
125
- UntrustedToAllowOriginHeaderConfig:: isSinkHW ( sink , allowOrigin )
125
+ UntrustedToAllowOriginHeaderConfig:: isSinkHW ( sink , allowOriginHW )
126
126
or
127
127
UntrustedToAllowOriginConfigFlow:: flowTo ( sink ) and
128
- UntrustedToAllowOriginConfigConfig:: isSinkWrite ( sink , allowOrigin )
128
+ UntrustedToAllowOriginConfigConfig:: isSinkWrite ( sink , allowOriginHW )
129
129
|
130
130
message =
131
131
headerAllowOrigin ( ) + " header is set to a user-defined value, and " +
@@ -137,14 +137,14 @@ predicate flowsFromUntrustedToAllowOrigin(DataFlow::ExprNode allowOrigin, string
137
137
* Holds if the provided `allowOriginHW` HeaderWrite is for a `Access-Control-Allow-Origin`
138
138
* header and the value is set to `null`.
139
139
*/
140
- predicate allowOriginIsNull ( DataFlow:: ExprNode allowOrigin , string message ) {
141
- allowOrigin .( AllowOriginHeaderWrite ) .getHeaderValue ( ) .toLowerCase ( ) = "null" and
140
+ predicate allowOriginIsNull ( DataFlow:: ExprNode allowOriginHW , string message ) {
141
+ allowOriginHW .( AllowOriginHeaderWrite ) .getHeaderValue ( ) .toLowerCase ( ) = "null" and
142
142
message =
143
143
headerAllowOrigin ( ) + " header is set to `" +
144
- allowOrigin .( AllowOriginHeaderWrite ) .getHeaderValue ( ) + "`, and " + headerAllowCredentials ( ) +
144
+ allowOriginHW .( AllowOriginHeaderWrite ) .getHeaderValue ( ) + "`, and " + headerAllowCredentials ( ) +
145
145
" is set to `true`"
146
146
or
147
- allowOrigin
147
+ allowOriginHW
148
148
.( GinCors:: AllowOriginsWrite )
149
149
.asExpr ( )
150
150
.( SliceLit )
@@ -153,7 +153,6 @@ predicate allowOriginIsNull(DataFlow::ExprNode allowOrigin, string message) {
153
153
.toLowerCase ( ) = "\"null\"" and
154
154
message =
155
155
headerAllowOrigin ( ) + " header is set to `" + "null" + "`, and " +
156
- //allowOrigin.(GinCors::AllowOriginsWrite).asExpr().(SliceLit).getAnElement().toString()
157
156
headerAllowCredentials ( ) + " is set to `true`"
158
157
}
159
158
0 commit comments