The Express server uses express.json() without a size limit, which can allow attackers to send extremely large request bodies. This may lead to excessive memory usage, degraded performance, or process crashes, resulting in a Denial of Service (DoS). Any application using the JSON parser without limits and exposed to untrusted clients is affected.
This issue is not a flaw in Express itself but in configuration. Users should set a request-size limit when enabling the JSON body parser. For example:
app.use(express.json({ limit: "100kb" }));
Users can mitigate the issue without upgrading by:
- Adding a limit option to the JSON parser
- Implementing rate limiting at the application or reverse-proxy level
- Rejecting unusually large requests before parsing
- Using a reverse proxy (such as NGINX) to enforce maximum request body sizes
{
"github_reviewed": true,
"severity": "HIGH",
"nvd_published_at": "2025-12-12T08:15:48Z",
"cwe_ids": [
"CWE-770"
],
"github_reviewed_at": "2025-12-11T18:36:54Z"
}