HighGHSA-27r3-jxmh-p828CVE-2026-111181

body-parser vulnerable to Denial of Service via trailing bytes after a compressed request body

Published 23 Oct 2026 · Updated 23 Oct 2026

Affected packages

Affected
>=2.0.0 <2.4.0
Fixed in
2.4.0
Update to the fixed version for your release line, for example:npm install body-parser@2.4.0
Affected
<1.20.9
Fixed in
1.20.9
Update to the fixed version for your release line, for example:npm install body-parser@1.20.9

Details

Impact

A single request can crash any application using body-parser with default options. When a request carries a Content-Encoding (for example gzip), body-parser pipes it into a decompression stream and, after reading the body, leaves that stream piped 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 authentication or matching route is required, since parsing runs before routing.

Patches

Fixed in body-parser 2.4.0 and 1.20.9. Upgrade to one of these versions.

Workarounds

Pass inflate: false to the body-parser middleware if the application does not need to accept compressed request bodies. This rejects encoded requests before any decompression stream is created.

Is GHSA-27r3-jxmh-p828 in any of your client repos?

Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected body-parser, and gives you the command that fixes it.

References

Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.