undici vulnerable to Denial of Service via unhandled error on excessive content-encodings
What fixes it
- 6.29.1undici, npmGitHub
npm install undici@6.29.1 - 7.30.1undici, npmGitHub
npm install undici@7.30.1 - 8.12.2undici, npmGitHub
npm install undici@8.12.2 - 6.29.1undiciCVE List
- 7.30.1undiciCVE List
- 8.12.2undiciCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
Impact
undici's fetch() crashes the Node.js process when a malicious server returns a response with more than five content codings and closes the connection before sending the body. undici rejects such responses (a content-encoding limit), but it created the internal response stream before that check and returned without attaching an error listener or aborting the request. The early close then surfaces a content-length mismatch on that orphaned internal stream, which Node.js treats as an unhandled error and terminates the process. A remote, unauthenticated server can trigger this with a single response, even when the application correctly catches the fetch() rejection. undici 6.x, 7.x, and 8.x are affected.
Patches
Upgrade to 6.29.1, 7.30.1, or 8.12.2. undici now validates the content-encoding chain before creating the internal body stream and aborts the response when the limit is exceeded, so no error can surface on an orphaned stream.
Workarounds
None.
Text from GitHub Advisory Database
Affected versions 12
- undici, npm>= 6.23.0, < 6.29.1GitHub
- undici, npm>= 7.18.0, < 7.30.1GitHub
- undici, npm>= 8.0.0, < 8.12.2GitHub
- undiciaffected: 6.23.0 before 6.29.1CVE List
- undiciunaffected: 6.29.1CVE List
- undiciaffected: 7.18.0 before 7.30.1CVE List
- undiciunaffected: 7.30.1CVE List
- undiciaffected: 8.0.0 before 8.12.2CVE List
- undiciunaffected: 8.12.2CVE List
- undici, npmfrom 6.23.0, fixed in 6.29.1OSV
- undici, npmfrom 7.18.0, fixed in 7.30.1OSV
- undici, npmfrom 8.0.0, fixed in 8.12.2OSV
References 10
- github.com/nodejs/undici/commit/07ded4941b1e72afec862958c3b8ddf468f3b429Fixvia GitHub
- github.com/nodejs/undici/commit/1325a87dfb3492f8e87e6b0a84b3bda4e82e3436Fixvia GitHub
- github.com/nodejs/undici/commit/b5084c7dc239172d75c336b1cd51ddac023938a5Fixvia GitHub
- github.com/nodejs/undici/releases/tag/v6.29.1Fixvia GitHub
- github.com/nodejs/undici/releases/tag/v7.30.1Fixvia GitHub
- github.com/nodejs/undici/releases/tag/v8.12.2Fixvia GitHub
- github.com/nodejs/undici/security/advisories/GHSA-xjj6-f33q-929cAdvisoryvia CVE List
- cna.openjsf.org/security-advisories.htmlAdvisoryvia CVE List
- github.com/advisories/GHSA-xjj6-f33q-929cAdvisoryvia GitHub
- nvd.nist.gov/vuln/detail/CVE-2026-109869Referencevia GitHub