Skip to content

Commit 78e7793

Browse files
committed
Move to experimental
1 parent 7662b2b commit 78e7793

File tree

3 files changed

+20
-20
lines changed

3 files changed

+20
-20
lines changed

javascript/ql/lib/semmle/javascript/frameworks/Express.qll

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import javascript
66
import semmle.javascript.frameworks.HTTP
77
import semmle.javascript.frameworks.ExpressModules
8-
import semmle.javascript.frameworks.Cors
98
private import semmle.javascript.dataflow.InferredTypes
109
private import semmle.javascript.frameworks.ConnectExpressShared::ConnectExpressShared
1110

@@ -1072,22 +1071,4 @@ module Express {
10721071

10731072
override predicate definitelyResumesDispatch() { none() }
10741073
}
1075-
1076-
/**
1077-
* An express route setup configured with the `cors` package.
1078-
*/
1079-
class CorsConfiguration extends DataFlow::MethodCallNode {
1080-
Cors::Cors corsConfig;
1081-
1082-
CorsConfiguration() {
1083-
exists(Express::RouteSetup setup | this = setup |
1084-
if setup.isUseCall()
1085-
then corsConfig = setup.getArgument(0)
1086-
else corsConfig = setup.getArgument(any(int i | i > 0))
1087-
)
1088-
}
1089-
1090-
/** Gets the expression that configures `cors` on this route setup. */
1091-
Cors::Cors getCorsConfiguration() { result = corsConfig }
1092-
}
10931074
}

javascript/ql/src/experimental/Security/CWE-942/CorsPermissiveConfigurationCustomizations.qll

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
import javascript
8+
import Cors
89

910
/** Module containing sources, sinks, and sanitizers for overly permissive CORS configurations. */
1011
module CorsPermissiveConfiguration {
@@ -69,7 +70,25 @@ module CorsPermissiveConfiguration {
6970
*/
7071
class ExpressCors extends Sink, DataFlow::ValueNode {
7172
ExpressCors() {
72-
exists(Express::CorsConfiguration config | this = config.getCorsConfiguration().getOrigin())
73+
exists(CorsConfiguration config | this = config.getCorsConfiguration().getOrigin())
7374
}
7475
}
76+
77+
/**
78+
* An express route setup configured with the `cors` package.
79+
*/
80+
class CorsConfiguration extends DataFlow::MethodCallNode {
81+
Cors::Cors corsConfig;
82+
83+
CorsConfiguration() {
84+
exists(Express::RouteSetup setup | this = setup |
85+
if setup.isUseCall()
86+
then corsConfig = setup.getArgument(0)
87+
else corsConfig = setup.getArgument(any(int i | i > 0))
88+
)
89+
}
90+
91+
/** Gets the expression that configures `cors` on this route setup. */
92+
Cors::Cors getCorsConfiguration() { result = corsConfig }
93+
}
7594
}

0 commit comments

Comments
 (0)