mirror of
https://github.com/github/codeql.git
synced 2026-04-29 02:35:15 +02:00
JS: recognize CSRF middleware from lusca package
This commit is contained in:
@@ -38,12 +38,15 @@ predicate hasCookieMiddleware(Express::RouteHandlerExpr expr, Express::RouteHand
|
||||
* // protected from CSRF
|
||||
* })
|
||||
* ```
|
||||
*
|
||||
* Currently the predicate only detects `csurf`-based protectors.
|
||||
*/
|
||||
DataFlow::CallNode csrfMiddlewareCreation() {
|
||||
exists (DataFlow::ModuleImportNode mod | result = mod.getACall() |
|
||||
mod.getPath() = "csurf"
|
||||
exists (DataFlow::SourceNode callee | result = callee.getACall() |
|
||||
callee = DataFlow::moduleImport("csurf")
|
||||
or
|
||||
callee = DataFlow::moduleImport("lusca") and
|
||||
result.getOptionArgument(0, "csrf").analyze().getABooleanValue() = true // any truthy value will enable CSRF
|
||||
or
|
||||
callee = DataFlow::moduleMember("lusca", "csrf")
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user