Every CVE Search/ Get API key

CVE-2026-39244

adm-zip: Crafted ZIP file triggers 4GB memory allocation

7.5 HighFix available

adm-zip before 0.5.18 is vulnerable to denial of service via a crafted ZIP file with a manipulated uncompressed size header field. In zipEntry.js line 103, Buffer.alloc(_centralHeader.size) allocates memory based on the declared uncompressed size from the ZIP central directory header without validating it against the actual compressed data size or imposing any upper bound. The size value is read directly from the binary header at entryHeader.js line 266 with no bounds check. An attacker can craft a ~120-byte ZIP file that declares ~4GB uncompressed size, causing a memory allocation amplification ratio of over 33 million to 1. The allocation occurs before CRC validation, so the malicious payload cannot be rejected early. All extraction and read methods are affected: readFile(), readAsText(), extractEntryTo(), extractAllTo(), extractAllToAsync(), test(), and entry.getData(). Any application accepting untrusted ZIP files via adm-zip is vulnerable to immediate process crash.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.84%Up 0.4 points since Jul 11, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.5

adm-zip before 0.5.18 is vulnerable to denial of service via a crafted ZIP file with a manipulated uncompressed size header field. In zipEntry.js line 103, Buffer.alloc(_centralHeader.size) allocates memory based on the declared uncompressed size from the ZIP central directory header without validating it against the actual compressed data size or imposing any upper bound. The size value is read directly from the binary header at entryHeader.js line 266 with no bounds check. An attacker can craft a ~120-byte ZIP file that declares ~4GB uncompressed size, causing a memory allocation amplification ratio of over 33 million to 1. The allocation occurs before CRC validation, so the malicious payload cannot be rejected early. All extraction and read methods are affected: readFile(), readAsText(), extractEntryTo(), extractAllTo(), extractAllToAsync(), test(), and entry.getData(). Any application accepting untrusted ZIP files via adm-zip is vulnerable to immediate process crash.

Record
CVE-2026-39244
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-400
Updated
2026-11-02
EUVDEUVD-2026-42960 7.5

adm-zip before 0.5.18 is vulnerable to denial of service via a crafted ZIP file with a manipulated uncompressed size header field. In zipEntry.js line 103, Buffer.alloc(_centralHeader.size) allocates memory based on the declared uncompressed size from the ZIP central directory header without validating it against the actual compressed data size or imposing any upper bound. The size value is read directly from the binary header at entryHeader.js line 266 with no bounds check. An attacker can craft a ~120-byte ZIP file that declares ~4GB uncompressed size, causing a memory allocation amplification ratio of over 33 million to 1. The allocation occurs before CRC validation, so the malicious payload cannot be rejected early. All extraction and read methods are affected: readFile(), readAsText(), extractEntryTo(), extractAllTo(), extractAllToAsync(), test(), and entry.getData(). Any application accepting untrusted ZIP files via adm-zip is vulnerable to immediate process crash.

Record
EUVD-2026-42960
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-xcpc-8h2w-3j85 7.5

adm-zip: Crafted ZIP file triggers 4GB memory allocation

adm-zip before 0.5.18 is vulnerable to denial of service via a crafted ZIP file with a manipulated uncompressed size header field. In zipEntry.js line 103, Buffer.alloc(_centralHeader.size) allocates memory based on the declared uncompressed size from the ZIP central directory header without validating it against the actual compressed data size or imposing any upper bound. The size value is read directly from the binary header at entryHeader.js line 266 with no bounds check. An attacker can craft a ~120-byte ZIP file that declares ~4GB uncompressed size, causing a memory allocation amplification ratio of over 33 million to 1. The allocation occurs before CRC validation, so the malicious payload cannot be rejected early. All extraction and read methods are affected: readFile(), readAsText(), extractEntryTo(), extractAllTo(), extractAllToAsync(), test(), and entry.getData(). Any application accepting untrusted ZIP files via adm-zip is vulnerable to immediate process crash.

Record
GHSA-xcpc-8h2w-3j85
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-400, CWE-789
Updated
2026-11-02
NVD 7.5

adm-zip before 0.5.18 is vulnerable to denial of service via a crafted ZIP file with a manipulated uncompressed size header field. In zipEntry.js line 103, Buffer.alloc(_centralHeader.size) allocates memory based on the declared uncompressed size from the ZIP central directory header without validating it against the actual compressed data size or imposing any upper bound. The size value is read directly from the binary header at entryHeader.js line 266 with no bounds check. An attacker can craft a ~120-byte ZIP file that declares ~4GB uncompressed size, causing a memory allocation amplification ratio of over 33 million to 1. The allocation occurs before CRC validation, so the malicious payload cannot be rejected early. All extraction and read methods are affected: readFile(), readAsText(), extractEntryTo(), extractAllTo(), extractAllToAsync(), test(), and entry.getData(). Any application accepting untrusted ZIP files via adm-zip is vulnerable to immediate process crash.

Record
CVE-2026-39244
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-400
Updated
2026-11-02
OSV 7.5

adm-zip before 0.5.18 is vulnerable to denial of service via a crafted ZIP file with a manipulated uncompressed size header field. In zipEntry.js line 103, Buffer.alloc(_centralHeader.size) allocates memory based on the declared uncompressed size from the ZIP central directory header without validating it against the actual compressed data size or imposing any upper bound. The size value is read directly from the binary header at entryHeader.js line 266 with no bounds check. An attacker can craft a ~120-byte ZIP file that declares ~4GB uncompressed size, causing a memory allocation amplification ratio of over 33 million to 1. The allocation occurs before CRC validation, so the malicious payload cannot be rejected early. All extraction and read methods are affected: readFile(), readAsText(), extractEntryTo(), extractAllTo(), extractAllToAsync(), test(), and entry.getData(). Any application accepting untrusted ZIP files via adm-zip is vulnerable to immediate process crash.

Record
CVE-2026-39244
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVGHSA-xcpc-8h2w-3j85 7.5

adm-zip: Crafted ZIP file triggers 4GB memory allocation

adm-zip before 0.5.18 is vulnerable to denial of service via a crafted ZIP file with a manipulated uncompressed size header field. In zipEntry.js line 103, Buffer.alloc(_centralHeader.size) allocates memory based on the declared uncompressed size from the ZIP central directory header without validating it against the actual compressed data size or imposing any upper bound. The size value is read directly from the binary header at entryHeader.js line 266 with no bounds check. An attacker can craft a ~120-byte ZIP file that declares ~4GB uncompressed size, causing a memory allocation amplification ratio of over 33 million to 1. The allocation occurs before CRC validation, so the malicious payload cannot be rejected early. All extraction and read methods are affected: readFile(), readAsText(), extractEntryTo(), extractAllTo(), extractAllToAsync(), test(), and entry.getData(). Any application accepting untrusted ZIP files via adm-zip is vulnerable to immediate process crash.

Record
GHSA-xcpc-8h2w-3j85
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-400, CWE-789
Updated
2026-11-02
Show 8 moreShow less
OSVCLSA-2026-1784769498 No score

TuxCare security update for adm-zip (2 CVEs)

TuxCare rebuilt adm-zip to address 2 CVEs. Fixed in 0.4.16-tuxcare.1.

Record
CLSA-2026-1784769498
Updated
2026-11-02
OSVCLSA-2026-1784856024 No score

TuxCare security update for adm-zip (1 CVE)

TuxCare rebuilt adm-zip to address 1 CVE. Fixed in 0.5.18-tuxcare.1.

Record
CLSA-2026-1784856024
Updated
2026-11-02
OSVCLSA-2026-1790161376 No score

TuxCare security update for adm-zip (1 CVE)

TuxCare rebuilt adm-zip to address 1 CVE. Fixed in 0.5.17-tuxcare.1.

Record
CLSA-2026-1790161376
Updated
2026-11-02
OSVCLSA-2026-1790162696 No score

TuxCare security update for adm-zip (1 CVE)

TuxCare rebuilt adm-zip to address 1 CVE. Fixed in 0.5.16-tuxcare.1.

Record
CLSA-2026-1790162696
Updated
2026-11-02
OSVCLSA-2026-1790165044 No score

TuxCare security update for adm-zip (1 CVE)

TuxCare rebuilt adm-zip to address 1 CVE. Fixed in 0.5.12-tuxcare.1.

Record
CLSA-2026-1790165044
Updated
2026-11-02
OSVCLSA-2026-1790176614 No score

TuxCare security update for adm-zip (1 CVE)

TuxCare rebuilt adm-zip to address 1 CVE. Fixed in 0.5.10-tuxcare.1.

Record
CLSA-2026-1790176614
Updated
2026-11-02
OSVCLSA-2026-1791315520 No score

TuxCare security update for adm-zip (1 CVE)

TuxCare rebuilt adm-zip to address 1 CVE. Fixed in 0.4.7-tuxcare.2.

Record
CLSA-2026-1791315520
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-39244 No score

CVE-2026-39244 in adm-zip - Patched by Root

Root has patched CVE-2026-39244 in the adm-zip package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-CVE-2026-39244
Updated
2026-11-06

Affected packages

Affected packages
PackageAffectedFixed
adm-zip
npm
before 0.6.0
0.6.0
adm-zip
TuxCare:npm
From an advisory covering 2 CVEs
0.4.16-tuxcare.0 up to 0.4.16-tuxcare.1, plus listed versions
0.4.16
0.4.16-tuxcare.1
adm-zip
TuxCare:npm
0.5.18-tuxcare.0 up to 0.5.18-tuxcare.1, plus listed versions
0.5.18
0.5.18-tuxcare.1
adm-zip
TuxCare:npm
0.5.17-tuxcare.0 up to 0.5.17-tuxcare.1, plus listed versions
0.5.17
0.5.17-tuxcare.1
adm-zip
TuxCare:npm
0.5.16-tuxcare.0 up to 0.5.16-tuxcare.1, plus listed versions
0.5.16
0.5.16-tuxcare.1
adm-zip
TuxCare:npm
0.5.12-tuxcare.0 up to 0.5.12-tuxcare.1, plus listed versions
0.5.12
0.5.12-tuxcare.1
adm-zip
TuxCare:npm
0.5.10-tuxcare.0 up to 0.5.10-tuxcare.1, plus listed versions
0.5.10
0.5.10-tuxcare.1
adm-zip
TuxCare:npm
0.4.7-tuxcare.0 up to 0.4.7-tuxcare.2, plus listed versions
0.4.70.4.7-tuxcare.1
0.4.7-tuxcare.2
adm-zip
Root:npm
before 0.5.16-aikido.2
0.5.16-aikido.20.5.18-aikido.20.5.10-aikido.10.5.16-aikido.10.5.18-aikido.10.5.10-aikido.20.5.9-aikido.10.5.10-aikido.30.5.10-aikido.40.5.10-aikido.50.5.9-aikido.20.5.18-aikido.30.5.9-aikido.30.5.16-aikido.30.6.0-aikido.10.6.0-aikido.20.6.0-aikido.3
@rootio/adm-zip
Root:npm
before 0.5.16-root.io.2
0.5.16-root.io.20.5.18-root.io.20.5.10-root.io.10.5.16-root.io.10.5.18-root.io.10.5.10-root.io.20.5.9-root.io.10.5.10-root.io.30.5.10-root.io.40.5.10-root.io.50.5.9-root.io.20.5.18-root.io.30.5.9-root.io.30.5.16-root.io.30.6.0-root.io.10.6.0-root.io.20.6.0-root.io.3

History

History
RecordedChangedSources
affected, factsOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-39244 is a high vulnerability (CVSS 7.5) in adm-zip, published July 10, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.84%, the 58th percentile. Fixed in adm-zip 0.6.0.

References

MoveEnter Open