@@ -83,6 +83,10 @@ module UntrustedToAllowOriginConfigConfig implements DataFlow::ConfigSig {
83
83
*/
84
84
module UntrustedToAllowOriginHeaderFlow = TaintTracking:: Global< UntrustedToAllowOriginHeaderConfig > ;
85
85
86
+ /**
87
+ * Tracks taint flowfor reasoning about when an `UntrustedFlowSource` flows to
88
+ * a `AllowOriginsWrite` that writes an `Access-Control-Allow-Origin` header's value.
89
+ */
86
90
module UntrustedToAllowOriginConfigFlow = TaintTracking:: Global< UntrustedToAllowOriginConfigConfig > ;
87
91
88
92
/**
@@ -111,17 +115,17 @@ predicate allowCredentialsIsSetToTrue(DataFlow::ExprNode allowOrigin) {
111
115
}
112
116
113
117
/**
114
- * Holds if the provided `allowOriginHW ` HeaderWrite's value is set using an
118
+ * Holds if the provided `allowOrigin ` HeaderWrite's value is set using an
115
119
* UntrustedFlowSource.
116
120
* The `message` parameter is populated with the warning message to be returned by the query.
117
121
*/
118
- predicate flowsFromUntrustedToAllowOrigin ( DataFlow:: ExprNode allowOriginHW , string message ) {
122
+ predicate flowsFromUntrustedToAllowOrigin ( DataFlow:: ExprNode allowOrigin , string message ) {
119
123
exists ( DataFlow:: Node sink |
120
124
UntrustedToAllowOriginHeaderFlow:: flowTo ( sink ) and
121
- UntrustedToAllowOriginHeaderConfig:: isSinkHW ( sink , allowOriginHW )
125
+ UntrustedToAllowOriginHeaderConfig:: isSinkHW ( sink , allowOrigin )
122
126
or
123
127
UntrustedToAllowOriginConfigFlow:: flowTo ( sink ) and
124
- UntrustedToAllowOriginConfigConfig:: isSinkWrite ( sink , allowOriginHW )
128
+ UntrustedToAllowOriginConfigConfig:: isSinkWrite ( sink , allowOrigin )
125
129
|
126
130
message =
127
131
headerAllowOrigin ( ) + " header is set to a user-defined value, and " +
@@ -146,8 +150,7 @@ predicate allowOriginIsNull(DataFlow::ExprNode allowOrigin, string message) {
146
150
.( SliceLit )
147
151
.getAnElement ( )
148
152
.toString ( )
149
- .toLowerCase ( )
150
- .matches ( "\"null\"" ) and
153
+ .toLowerCase ( ) = "\"null\"" and
151
154
message =
152
155
headerAllowOrigin ( ) + " header is set to `" + "null" + "`, and " +
153
156
//allowOrigin.(GinCors::AllowOriginsWrite).asExpr().(SliceLit).getAnElement().toString()
0 commit comments