adm-zip: Uncontrolled memory allocation via the declared uncompressed size (DoS)
adm-zip is a JavaScript library for creating and extracting ZIP archives in Node.js. Prior to 0.6.1, getData() in zipEntry.js trusts an entry's central-directory uncompressed size and allocates output memory before validating that value against the actual compressed data and decompression result. A small crafted ZIP can declare a multi-gigabyte uncompressed size, causing Buffer.alloc and decompression handling to commit excessive resident memory before CRC validation reports an error. Applications that read entries from untrusted archives can therefore be terminated by the operating system or suffer service-wide memory exhaustion. This issue is fixed in version 0.6.1.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-77301
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 15:14 UTC · Revision 1
Source evidence
adm-zip: Uncontrolled memory allocation via the declared uncompressed size (DoS)
core-osv · Original sourcePublished 18 Sept 2026, 16:38 UTC
adm-zip is a JavaScript library for creating and extracting ZIP archives in Node.js. Prior to 0.6.1, getData() in zipEntry.js trusts an entry's central-directory uncompressed size and allocates output memory before validating that value against the actual compressed data and decompression result. A small crafted ZIP can declare a multi-gigabyte uncompressed size, causing Buffer.alloc and decompression handling to commit excessive resident memory before CRC validation reports an error. Applications that read entries from untrusted archives can therefore be terminated by the operating system or suffer service-wide memory exhaustion. This issue is fixed in version 0.6.1.
osv:CVE-2026-77301
Complete source record
{
"id": "4d1e3c2c897a3887e554e977b8f5754ec10a5d1faf56e0e856079291e055f939",
"url": "https://osv.dev/vulnerability/CVE-2026-77301",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "adm-zip: Uncontrolled memory allocation via the declared uncompressed size (DoS)",
"summary": "adm-zip is a JavaScript library for creating and extracting ZIP archives in Node.js. Prior to 0.6.1, getData() in zipEntry.js trusts an entry's central-directory uncompressed size and allocates output memory before validating that value against the actual compressed data and decompression result. A small crafted ZIP can declare a multi-gigabyte uncompressed size, causing Buffer.alloc and decompression handling to commit excessive resident memory before CRC validation reports an error. Applications that read entries from untrusted archives can therefore be terminated by the operating system or suffer service-wide memory exhaustion. This issue is fixed in version 0.6.1.",
"evidence": "osv:CVE-2026-77301",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-77301",
"aliases": [
"CVE-2026-77301",
"GHSA-7q85-xj36-vmfc"
],
"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/cthackers/adm-zip",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "cb2cf9ba4c7c865db426e2de1997cb41194d9872"
},
{
"fixed": "491600683dacb6cb9fe0718a0eeb9cb5eb49afa6"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "0.6.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "491600683dacb6cb9fe0718a0eeb9cb5eb49afa6"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "cb2cf9ba4c7c865db426e2de1997cb41194d9872"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v0.6.1"
}
]
}
}
],
"versions": [
"v0.6.0",
"v0.5.18",
"v0.5.17",
"v0.5.16",
"v0.5.15",
"v0.5.14",
"v0.5.13",
"v0.5.12",
"v0.5.11",
"v0.5.10",
"v0.5.9",
"v0.5.8",
"v0.5.7",
"v0.5.6",
"v0.5.5",
"v0.5.4",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.4.16",
"v0.4.14",
"v0.4.13",
"v0.4.11",
"v0.4.10",
"v0.4.9",
"v0.4.8",
"v0.4.7",
"v0.4.5",
"v0.4.6",
"v0.4.4",
"v0.4.3",
"v0.3.2",
"v0.3.1",
"v0.2.1",
"v0.1.9",
"v0.1.8",
"v0.1.7",
"v0.1.5",
"v0.1.3",
"v0.1.2",
"v0.1.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-77301.json"
}
}
],
"modified": "2026-10-28T02:30:29.970046044Z",
"provider": "osv",
"references": [
"https://github.com/cthackers/adm-zip/releases/tag/v0.6.1",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77301.json",
"https://github.com/cthackers/adm-zip/security/advisories/GHSA-7q85-xj36-vmfc",
"https://nvd.nist.gov/vuln/detail/CVE-2026-77301",
"https://github.com/cthackers/adm-zip/commit/491600683dacb6cb9fe0718a0eeb9cb5eb49afa6"
],
"provider_metadata": {
"cwe_ids": [
"CWE-789"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77301.json"
}
},
"related_cves": [
{
"value": "CVE-2026-77301",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 496718,
"published_at": "2026-09-18T16:38:47.064+00:00"
}