undici vulnerable to Denial of Service via unhandled error on excessive content-encodings
undici is an HTTP client library for Node.js. In versions 6.23.0 through 6.29.0, 7.18.0 through 7.30.0, and 8.0.0 through 8.12.1, its fetch() implementation 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 because of 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, so the early close surfaces a content-length mismatch on the orphaned 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, resulting in a denial of service. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. There is no workaround.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-109869
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 16:29 UTC · Revision 1
Source evidence
undici vulnerable to Denial of Service via unhandled error on excessive content-encodings
core-osv · Original sourcePublished 15 Oct 2026, 18:08 UTC
undici is an HTTP client library for Node.js. In versions 6.23.0 through 6.29.0, 7.18.0 through 7.30.0, and 8.0.0 through 8.12.1, its fetch() implementation 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 because of 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, so the early close surfaces a content-length mismatch on the orphaned 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, resulting in a denial of service. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. There is no workaround.
osv:CVE-2026-109869
Complete source record
{
"id": "bb2b593098a196ae1ca87e9695b24cf41bb0fbe71589c9c8cd163c363e7bb630",
"url": "https://osv.dev/vulnerability/CVE-2026-109869",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "undici vulnerable to Denial of Service via unhandled error on excessive content-encodings",
"summary": "undici is an HTTP client library for Node.js. In versions 6.23.0 through 6.29.0, 7.18.0 through 7.30.0, and 8.0.0 through 8.12.1, its fetch() implementation 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 because of 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, so the early close surfaces a content-length mismatch on the orphaned 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, resulting in a denial of service. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. There is no workaround.",
"evidence": "osv:CVE-2026-109869",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-109869",
"aliases": [
"CVE-2026-109869",
"GHSA-xjj6-f33q-929c"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/nodejs/undici",
"type": "GIT",
"events": [
{
"introduced": "fbc31e21d7e1dffea61166ab7a827f74b6483d26"
},
{
"fixed": "8c57f6c68c95465338ae97bfc991cb1513d2f76e"
},
{
"introduced": "ebe3e33ea4d25402e0dc12dcc67902fdb7f231d4"
},
{
"fixed": "7507102a675b082a71437f0a00681e537875556c"
},
{
"introduced": "d7fbba51772deecb830a297647456a5e9f9fec57"
},
{
"fixed": "bb6cc0ae9b6827ed273ed5ba344148273629638f"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "6.23.0"
},
{
"fixed": "6.29.1"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "7.18.0"
},
{
"fixed": "7.30.1"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "8.0.0"
},
{
"fixed": "8.12.2"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v8.12.1",
"v8.12.0",
"v6.29.0",
"v7.30.0",
"v8.11.2",
"v8.11.1",
"v8.11.0",
"v6.28.1",
"v7.29.1",
"v8.10.2",
"v8.10.1",
"v8.10.0",
"v6.28.0",
"v8.9.0",
"v7.29.0",
"v6.27.0",
"v7.28.0",
"v8.8.0",
"v8.7.0",
"v8.6.0",
"v8.5.0",
"v6.26.0",
"v7.27.2",
"v8.4.1",
"v8.4.0",
"v7.27.1",
"v7.27.0",
"v7.26.0",
"v6.25.0",
"v8.3.0",
"v8.2.0",
"v7.25.0",
"v7.24.8",
"v8.1.0",
"v8.0.3",
"v8.0.2",
"v8.0.1",
"v8.0.0",
"v7.24.7",
"v7.24.6",
"v7.24.5",
"v7.24.4",
"v7.24.3",
"v7.24.2",
"v6.24.1",
"v6.24.0",
"v7.24.1",
"v7.24.0",
"v6.23.0",
"v7.23.0",
"v7.22.0",
"v7.21.0",
"v7.20.0",
"v7.19.2",
"v7.19.1",
"v7.19.0",
"v7.18.2",
"v7.18.1",
"v7.18.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-109869.json"
}
}
],
"modified": "2026-10-28T02:30:30.440826051Z",
"provider": "osv",
"references": [
"https://cna.openjsf.org/security-advisories.html",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/109xxx/CVE-2026-109869.json",
"https://github.com/nodejs/undici/security/advisories/GHSA-xjj6-f33q-929c",
"https://nvd.nist.gov/vuln/detail/CVE-2026-109869"
],
"provider_metadata": {
"cwe_ids": [
"CWE-248",
"CWE-459"
],
"cna_assigner": "openjs",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/109xxx/CVE-2026-109869.json"
}
},
"related_cves": [
{
"value": "CVE-2026-109869",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 497364,
"published_at": "2026-10-15T18:08:31.243+00:00"
}