mirror of
https://github.com/github/codeql.git
synced 2026-07-17 09:18:15 +02:00
30 lines
1.0 KiB
Plaintext
30 lines
1.0 KiB
Plaintext
/**
|
|
* @name Missing rate limiting
|
|
* @description An HTTP request handler that performs expensive operations without
|
|
* restricting the rate at which operations can be carried out is vulnerable
|
|
* to denial-of-service attacks.
|
|
* @kind problem
|
|
* @problem.severity warning
|
|
* @security-severity 7.5
|
|
* @precision high
|
|
* @id js/missing-rate-limiting
|
|
* @tags security
|
|
* external/cwe/cwe-770
|
|
* external/cwe/cwe-307
|
|
* external/cwe/cwe-400
|
|
*/
|
|
|
|
import javascript
|
|
import semmle.javascript.security.dataflow.MissingRateLimiting
|
|
import semmle.javascript.RestrictedLocations
|
|
|
|
from
|
|
Routing::Node useSite, ExpensiveRouteHandler r, string explanation, DataFlow::Node reference,
|
|
string referenceLabel
|
|
where
|
|
useSite = Routing::getNode(r).getRouteInstallation() and
|
|
r.explain(explanation, reference, referenceLabel) and
|
|
not useSite.isGuardedByNode(any(RateLimitingMiddleware m).getRoutingNode())
|
|
select useSite, "This route handler " + explanation + ", but is not rate-limited.", reference,
|
|
referenceLabel
|