CVE-2026-111181: body-parser vulnerable to Denial of Service via trailing bytes after a compressed request body
body-parser is body parsing middleware for Node.js and Express. In versions before 1.20.9 and in versions from 2.0.0 before 2.4.0, a single request can crash any application using body-parser with default options. When a request carries a Content-Encoding such as gzip, body-parser pipes it into a decompression stream and, after reading the body, leaves that stream with no error listener. A payload of one valid compressed frame followed by trailing bytes decodes and the application responds normally, but the trailing bytes then reach the already-finished decoder, which emits an error that is re-thrown as an uncaught exception and terminates the process. No matching route is required because body parsing runs before routing, so any endpoint that parses a body is affected. The issue is fixed in body-parser 2.4.0 and 1.20.9, and users should upgrade to one of those versions or later. As a workaround, disable request-body inflation (set the body-parser inflate option to false) so encoded requests are rejected before any decompression stream is created.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
body-parserto a version that resolves this vulnerability.Fixed in 1.20.9 - Upgrade
Upgrade
body-parserto a version that resolves this vulnerability.Fixed in 2.4.0 - Configuration
Disable request-body inflation by setting the body-parser inflate option to false so encoded requests are rejected before a decompression stream is created.
body-parser inflate = false
Event History
Frequently Asked Questions
Which deployments are exposed to this denial-of-service issue?
Applications using body-parser with its default options are affected if they accept requests that body-parser parses. Because parsing occurs before routing, an attacker does not need to target a matching application route; any endpoint that parses a body can be used.
What does an attacker need to send to trigger the crash?
The attacker needs to send a request with a Content-Encoding such as gzip containing one valid compressed frame followed by trailing bytes. No authentication or user interaction is required.
How can exposure be mitigated if an upgrade cannot be applied immediately?
Disable request-body inflation by setting the body-parser inflate option to false. This causes encoded requests to be rejected before a decompression stream is created.
Which versions contain the fix?
Upgrade to body-parser 1.20.9 or later in the 1.x line, or 2.4.0 or later in the 2.x line.