undici is vulnerable to Unbounded Memory Consumption in undici WebSocket permessage-deflate Decompression
The undici WebSocket client is vulnerable to a denial-of-service attack via unbounded memory consumption during permessage-deflate decompression. When a WebSocket connection negotiates the permessage-deflate extension, the client decompresses incoming compressed frames without enforcing any limit on the decompressed data size. A malicious WebSocket server can send a small compressed frame (a "decompression bomb") that expands to an extremely large size in memory, causing the Node.js process to exhaust available memory and crash or become unresponsive. The vulnerability exists in the PerMessageDeflate.decompress() method, which accumulates all decompressed chunks in memory and concatenates them into a single Buffer without checking whether the total size exceeds a safe threshold.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-1526
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 7 Nov 2026, 03:56 UTC · Revision 1
Source evidence
undici is vulnerable to Unbounded Memory Consumption in undici WebSocket permessage-deflate Decompression
core-osv · Original sourcePublished 12 Mar 2026, 20:08 UTC
The undici WebSocket client is vulnerable to a denial-of-service attack via unbounded memory consumption during permessage-deflate decompression. When a WebSocket connection negotiates the permessage-deflate extension, the client decompresses incoming compressed frames without enforcing any limit on the decompressed data size. A malicious WebSocket server can send a small compressed frame (a "decompression bomb") that expands to an extremely large size in memory, causing the Node.js process to exhaust available memory and crash or become unresponsive. The vulnerability exists in the PerMessageDeflate.decompress() method, which accumulates all decompressed chunks in memory and concatenates them into a single Buffer without checking whether the total size exceeds a safe threshold.
osv:CVE-2026-1526
Complete source record
{
"id": "d55c1e854a5666843c4e9e9410422397728fd90ef61a593aa3575086080810c4",
"url": "https://osv.dev/vulnerability/CVE-2026-1526",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "undici is vulnerable to Unbounded Memory Consumption in undici WebSocket permessage-deflate Decompression",
"summary": "The undici WebSocket client is vulnerable to a denial-of-service attack via unbounded memory consumption during permessage-deflate decompression. When a WebSocket connection negotiates the permessage-deflate extension, the client decompresses incoming compressed frames without enforcing any limit on the decompressed data size. A malicious WebSocket server can send a small compressed frame (a \"decompression bomb\") that expands to an extremely large size in memory, causing the Node.js process to exhaust available memory and crash or become unresponsive. The vulnerability exists in the PerMessageDeflate.decompress() method, which accumulates all decompressed chunks in memory and concatenates them into a single Buffer without checking whether the total size exceeds a safe threshold.",
"evidence": "osv:CVE-2026-1526",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-1526",
"aliases": [
"CVE-2026-1526",
"GHSA-vrm6-8vpv-qv8q"
],
"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": "0"
},
{
"fixed": "8873c947271faf1ebc455bdc6158ecbc022ecfa9"
},
{
"introduced": "1cfe0949053aac6267f11b919cee9315a27f1fd6"
},
{
"fixed": "07a39067a0485c1953196f500d945fe09378a176"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "6.24.0"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "7.0.0"
},
{
"fixed": "7.24.0"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"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",
"v6.22.0",
"v7.17.0",
"v7.16.0",
"v7.15.0",
"v6.21.3",
"v7.14.0",
"v7.13.0",
"v7.12.0",
"v7.11.0",
"v7.10.0",
"v6.21.2",
"v7.9.0",
"v7.8.0",
"v7.7.0",
"v7.5.0",
"v7.6.0",
"v7.4.0",
"v6.21.1",
"v7.3.0",
"v7.2.3",
"v7.2.2",
"v7.2.1",
"v7.2.0",
"v7.1.1",
"v7.1.0",
"v7.0.0",
"v6.21.0",
"v6.20.1",
"v6.20.0",
"v6.19.8",
"v6.19.7",
"v6.19.6",
"v6.19.5",
"v6.19.4",
"v6.19.3",
"v6.19.2",
"v6.19.1",
"v6.19.0",
"v6.18.2",
"v6.18.1",
"v6.18.0",
"v6.17.0",
"v6.16.1",
"v6.16.0",
"v6.15.0",
"v6.14.1",
"v6.14.0",
"v6.13.0",
"v6.12.0",
"v6.11.1",
"v6.11.0",
"v6.10.2",
"v6.10.1",
"v6.10.0",
"v6.9.0",
"v6.8.0",
"v6.7.1",
"v6.7.0",
"v6.6.2",
"v6.6.1",
"v5.28.2",
"v6.6.0",
"v6.5.0",
"v6.4.0",
"v6.3.0",
"v6.2.1",
"v6.2.0",
"v6.1.0",
"v6.0.1",
"v6.0.0",
"v5.28.1",
"v5.28.0",
"v5.27.2",
"v5.27.1",
"v5.27.0",
"v5.26.5",
"v5.26.4",
"v5.26.3",
"v5.26.2",
"v5.26.1",
"v5.26.0",
"v5.23.4",
"v5.25.3",
"v5.25.2",
"v5.25.1",
"v5.25.0",
"v5.24.0",
"v5.23.0",
"v5.22.1",
"v5.22.0",
"v5.21.2",
"v5.21.1",
"v5.21.0",
"v5.20.0",
"v5.19.1",
"v5.19.0",
"v5.18.0",
"v5.17.1",
"v5.17.0",
"v5.16.0",
"v5.15.2",
"v5.15.1",
"v5.15.0",
"v5.14.0",
"v5.13.0",
"v5.12.0",
"v5.11.0",
"v5.10.0",
"v5.9.1",
"v5.8.2",
"v5.8.1",
"v5.8.0",
"v5.7.0",
"v5.6.1",
"v5.6.0",
"v5.5.1",
"v5.5.0",
"v5.4.0",
"v5.3.0",
"v5.2.0",
"v5.1.1",
"v5.1.0",
"v5.0.0",
"v4.16.0",
"v4.15.1",
"v4.15.0",
"v4.14.1",
"v4.14.0",
"v4.13.0",
"v4.12.2",
"v4.12.0",
"v4.11.3",
"v4.11.2",
"v4.11.1",
"v4.11.0",
"v4.10.4",
"v4.10.3",
"v4.10.2",
"v4.10.1",
"v4.10.0",
"v4.9.5",
"v4.9.4",
"v4.9.3",
"v4.9.2",
"v4.9.1",
"v4.9.0",
"v4.8.2",
"v4.8.1",
"v4.8.0",
"v4.7.3",
"v4.7.2",
"v4.7.1",
"v4.7.0",
"v4.6.0",
"v4.5.1",
"v4.5.0",
"v4.4.7",
"v4.4.6",
"v4.4.5",
"v4.4.4",
"v4.4.3",
"v4.4.2",
"v4.4.1",
"v4.3.1",
"v4.3.0",
"v4.2.2",
"v4.2.1",
"v4.1.1",
"v4.1.0",
"v4.0.0",
"v4.0.0-rc.8",
"v4.0.0-rc.7",
"v4.0.0-rc.5",
"v4.0.0-rc.4",
"v4.0.0-rc.3",
"v4.0.0-rc.2",
"v4.0.0-rc.1",
"v4.0.0-alpha.5",
"v4.0.0-alpha.4",
"v4.0.0-alpha.2",
"v4.0.0-alpha.1",
"v4.0.0-alpha.0",
"v3.3.1",
"v3.3.0",
"v3.2.0",
"v3.1.0",
"v3.0.0",
"v2.1.0",
"v2.0.7",
"v2.0.6",
"v2.0.5",
"v2.0.4",
"v2.0.3",
"v2.0.2",
"v2.0.1",
"v2.0.0",
"v1.3.1",
"v1.3.0",
"v1.2.6",
"v1.2.5",
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1.0",
"v1.0.3",
"v1.0.2",
"v1.0.1",
"v1.0.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-1526.json"
}
}
],
"modified": "2026-10-28T02:30:49.711520189Z",
"provider": "osv",
"references": [
"https://datatracker.ietf.org/doc/html/rfc7692",
"https://github.com/nodejs/undici/",
"https://hackerone.com/reports/3481206",
"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-1526.json",
"https://access.redhat.com/errata/RHSA-2026:13826",
"https://access.redhat.com/errata/RHSA-2026:17789",
"https://access.redhat.com/errata/RHSA-2026:21772",
"https://access.redhat.com/errata/RHSA-2026:21931",
"https://access.redhat.com/errata/RHSA-2026:34342",
"https://access.redhat.com/errata/RHSA-2026:56431",
"https://access.redhat.com/errata/RHSA-2026:5807",
"https://access.redhat.com/errata/RHSA-2026:7080",
"https://access.redhat.com/errata/RHSA-2026:7123",
"https://access.redhat.com/errata/RHSA-2026:7302",
"https://access.redhat.com/errata/RHSA-2026:7310",
"https://access.redhat.com/errata/RHSA-2026:7350",
"https://access.redhat.com/errata/RHSA-2026:7670",
"https://access.redhat.com/errata/RHSA-2026:7675",
"https://access.redhat.com/errata/RHSA-2026:7983",
"https://access.redhat.com/errata/RHSA-2026:9742",
"https://access.redhat.com/security/cve/CVE-2026-1526",
"https://cna.openjsf.org/security-advisories.html",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/1xxx/CVE-2026-1526.json",
"https://github.com/nodejs/undici/security/advisories/GHSA-vrm6-8vpv-qv8q",
"https://nvd.nist.gov/vuln/detail/CVE-2026-1526",
"https://bugzilla.redhat.com/show_bug.cgi?id=2447142"
],
"provider_metadata": {
"cwe_ids": [
"CWE-409"
],
"cna_assigner": "openjs",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"introduced": "< 6.24.0; 7.0.0 < 7.24.0"
},
{
"last_affected": "< 6.24.0; 7.0.0 < 7.24.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandaloneSingleVersion"
}
]
}
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/1xxx/CVE-2026-1526.json"
}
},
"related_cves": [
{
"value": "CVE-2026-1526",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 517930,
"published_at": "2026-03-12T20:08:05.95+00:00"
}