@@ -94,19 +94,19 @@ module UntrustedToAllowOriginConfigFlow = TaintTracking::Global<UntrustedToAllow
9494 * also has another HeaderWrite that sets a `Access-Control-Allow-Credentials`
9595 * header to `true`.
9696 */
97- predicate allowCredentialsIsSetToTrue ( DataFlow:: ExprNode allowOrigin ) {
97+ predicate allowCredentialsIsSetToTrue ( DataFlow:: ExprNode allowOriginHW ) {
9898 exists ( AllowCredentialsHeaderWrite allowCredentialsHW |
9999 allowCredentialsHW .getHeaderValue ( ) .toLowerCase ( ) = "true"
100100 |
101- allowOrigin .( AllowOriginHeaderWrite ) .getResponseWriter ( ) =
101+ allowOriginHW .( AllowOriginHeaderWrite ) .getResponseWriter ( ) =
102102 allowCredentialsHW .getResponseWriter ( )
103103 )
104104 or
105105 exists ( GinCors:: AllowCredentialsWrite allowCredentialsGin |
106106 allowCredentialsGin .toString ( ) = "true"
107107 |
108108 //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
110110 not exists ( GinCors:: AllowAllOriginsWrite allowAllOrigins |
111111 allowAllOrigins .toString ( ) = "true" and
112112 allowCredentialsGin .getConfig ( ) = allowAllOrigins .getConfig ( )
@@ -115,17 +115,17 @@ predicate allowCredentialsIsSetToTrue(DataFlow::ExprNode allowOrigin) {
115115}
116116
117117/**
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
119119 * UntrustedFlowSource.
120120 * The `message` parameter is populated with the warning message to be returned by the query.
121121 */
122- predicate flowsFromUntrustedToAllowOrigin ( DataFlow:: ExprNode allowOrigin , string message ) {
122+ predicate flowsFromUntrustedToAllowOrigin ( DataFlow:: ExprNode allowOriginHW , string message ) {
123123 exists ( DataFlow:: Node sink |
124124 UntrustedToAllowOriginHeaderFlow:: flowTo ( sink ) and
125- UntrustedToAllowOriginHeaderConfig:: isSinkHW ( sink , allowOrigin )
125+ UntrustedToAllowOriginHeaderConfig:: isSinkHW ( sink , allowOriginHW )
126126 or
127127 UntrustedToAllowOriginConfigFlow:: flowTo ( sink ) and
128- UntrustedToAllowOriginConfigConfig:: isSinkWrite ( sink , allowOrigin )
128+ UntrustedToAllowOriginConfigConfig:: isSinkWrite ( sink , allowOriginHW )
129129 |
130130 message =
131131 headerAllowOrigin ( ) + " header is set to a user-defined value, and " +
@@ -137,14 +137,14 @@ predicate flowsFromUntrustedToAllowOrigin(DataFlow::ExprNode allowOrigin, string
137137 * Holds if the provided `allowOriginHW` HeaderWrite is for a `Access-Control-Allow-Origin`
138138 * header and the value is set to `null`.
139139 */
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
142142 message =
143143 headerAllowOrigin ( ) + " header is set to `" +
144- allowOrigin .( AllowOriginHeaderWrite ) .getHeaderValue ( ) + "`, and " + headerAllowCredentials ( ) +
144+ allowOriginHW .( AllowOriginHeaderWrite ) .getHeaderValue ( ) + "`, and " + headerAllowCredentials ( ) +
145145 " is set to `true`"
146146 or
147- allowOrigin
147+ allowOriginHW
148148 .( GinCors:: AllowOriginsWrite )
149149 .asExpr ( )
150150 .( SliceLit )
@@ -153,7 +153,6 @@ predicate allowOriginIsNull(DataFlow::ExprNode allowOrigin, string message) {
153153 .toLowerCase ( ) = "\"null\"" and
154154 message =
155155 headerAllowOrigin ( ) + " header is set to `" + "null" + "`, and " +
156- //allowOrigin.(GinCors::AllowOriginsWrite).asExpr().(SliceLit).getAnElement().toString()
157156 headerAllowCredentials ( ) + " is set to `true`"
158157}
159158
0 commit comments