Skip to content

Commit e043692

Browse files
committed
Replace complex wrapper classes with MaD
1 parent 1c33a0a commit e043692

File tree

4 files changed

+11
-62
lines changed

4 files changed

+11
-62
lines changed

javascript/ql/lib/ext/apollo-server.model.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ extensions:
1010
extensible: sinkModel
1111
data:
1212
- ["@apollo/server", "Member[gql].Argument[0]", "sql-injection"]
13+
- ["@apollo/server", "Member[ApolloServer,ApolloServerBase].Argument[0].Member[cors].Member[origin]", "cors-misconfiguration"]
1314

1415
- addsTo:
1516
pack: codeql/javascript-all

javascript/ql/lib/ext/cors.model.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/javascript-all
4+
extensible: sinkModel
5+
data:
6+
- ["cors", "Argument[0].Member[origin]", "cors-misconfiguration"]

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

Lines changed: 0 additions & 24 deletions
This file was deleted.

javascript/ql/lib/semmle/javascript/security/dataflow/CorsMisconfigurationForCredentialsCustomizations.qll

Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
*/
66

77
import javascript
8-
private import semmle.javascript.frameworks.Cors
98

109
module CorsMisconfigurationForCredentials {
1110
/**
@@ -88,46 +87,13 @@ module CorsMisconfigurationForCredentials {
8887
}
8988

9089
/**
91-
* The value of cors origin when initializing the application.
90+
* The value of cors origin configuration.
9291
*/
93-
class CorsApolloServer extends Sink, DataFlow::ValueNode {
94-
CorsApolloServer() {
95-
exists(API::NewNode agql |
96-
agql = ModelOutput::getATypeNode("ApolloServer").getAnInstantiation() and
97-
this =
98-
agql.getOptionArgument(0, "cors").getALocalSource().getAPropertyWrite("origin").getRhs()
99-
)
100-
}
101-
102-
override Http::HeaderDefinition getCredentialsHeader() { none() }
103-
}
104-
105-
/**
106-
* The value of cors origin when initializing the application.
107-
*/
108-
class ExpressCors extends Sink, DataFlow::ValueNode {
109-
ExpressCors() {
110-
exists(CorsConfiguration config | this = config.getCorsConfiguration().getOrigin())
92+
class CorsOriginSink extends Sink, DataFlow::ValueNode {
93+
CorsOriginSink() {
94+
this = ModelOutput::getASinkNode("cors-misconfiguration").asSink()
11195
}
11296

11397
override Http::HeaderDefinition getCredentialsHeader() { none() }
11498
}
115-
116-
/**
117-
* An express route setup configured with the `cors` package.
118-
*/
119-
class CorsConfiguration extends DataFlow::MethodCallNode {
120-
Cors::Cors corsConfig;
121-
122-
CorsConfiguration() {
123-
exists(Express::RouteSetup setup | this = setup |
124-
if setup.isUseCall()
125-
then corsConfig = setup.getArgument(0)
126-
else corsConfig = setup.getArgument(any(int i | i > 0))
127-
)
128-
}
129-
130-
/** Gets the expression that configures `cors` on this route setup. */
131-
Cors::Cors getCorsConfiguration() { result = corsConfig }
132-
}
13399
}

0 commit comments

Comments
 (0)