Every CVE Search/ Get API key

CVE-2026-114104

adm-zip before 0.6.1 Duplicate ZIP Entry Name Validation Bypass

8.2 HighFix available

adm-zip before 0.6.1 contains an inconsistent entry resolution vulnerability that allows attackers to bypass content validation by supplying ZIP archives with duplicate entry names. Attackers can craft archives where getEntry() returns the last duplicate while extractAllTo() writes the first, causing unvalidated bytes to be written to disk.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
High
Availability
None

Exploit likelihood

0.33%Up 0.1 points since Oct 21, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.2

adm-zip before 0.6.1 Duplicate ZIP Entry Name Validation Bypass

adm-zip before 0.6.1 contains an inconsistent entry resolution vulnerability that allows attackers to bypass content validation by supplying ZIP archives with duplicate entry names. Attackers can craft archives where getEntry() returns the last duplicate while extractAllTo() writes the first, causing unvalidated bytes to be written to disk.

Record
CVE-2026-114104
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-436
Updated
2026-11-02
EUVDEUVD-2026-106907 8.2

adm-zip before 0.6.1 contains an inconsistent entry resolution vulnerability that allows attackers to bypass content validation by supplying ZIP archives with duplicate entry names. Attackers can craft archives where getEntry() returns the last duplicate while extractAllTo() writes the first, causing unvalidated bytes to be written to disk.

Record
EUVD-2026-106907
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-8238-w5pm-2374 7.5

adm-zip: Unhandled error event in async DEFLATE decompression crashes Node.js process (DoS)

Summary

Denial of Service in adm-zip's async decompression API allows an unauthenticated attacker to crash the entire Node.js host process by supplying a single malformed ZIP file.

Details

Affected package: adm-zip Affected versions: at least 0.6.0 (current latest); likely all versions containing the current inflateAsync implementation in methods/inflater.js Patched version: 0.6.1

Root Cause

methods/inflater.js:12-32 (inflateAsync) creates a zlib.createInflateRaw(option) stream and feeds it attacker-controlled compressed bytes via tmp.end(inbuf), but never registers an "error" listener on the stream:

inflateAsync: function (/*Function*/ callback) {
    var tmp = zlib.createInflateRaw(option),
        parts = [],
        total = 0;
    tmp.on("data", function (data) { parts.push(data); total += data.length; });
    tmp.on("end", function () { /* build buf, callback(buf) */ });
    tmp.end(inbuf);   // no tmp.on("error", ...) registered anywhere
}

Per Node.js EventEmitter/stream semantics, an "error" event emitted with zero listeners is rethrown as an uncaught exception on a later tick, originating from the zlib C++ binding. This cannot be caught by a try/catch wrapped around the calling code, because the throw happens asynchronously, outside the synchronous call stack the try/catch covers.

This code path is reached from every public async API that decompresses entry data: readFileAsync, readAsTextAsync, extractAllToAsync, and ZipEntry.getDataAsync (zipEntry.js:51, :97-120, :309-315; adm-zip.js:157-164, :192-210, :893).

This library recently patched CVE-2026-39244 (GHSA-xcpc-8h2w-3j85), an unbounded Buffer.alloc() on the synchronous decompression path. That fix added a maxOutputLength option to zlib.inflateRawSync/zlib.createInflateRaw, and the sync path's resulting throw is naturally catchable. The async path shares the same maxOutputLength option (methods/inflater.js:5) but has no error-handling on the stream at all, so it was not covered by that fix and remains exploitable via either of two independent triggers:

  1. A DEFLATE entry with corrupted/malformed compressed bytes (Z_DATA_ERROR) — no special crafting needed.
  2. Compressed data whose inflated size exceeds the declared central-directory size, which now trips the maxOutputLength guard — but on the stream this surfaces via the unhandled "error" event rather than a catchable throw.

Attack Vector

  1. Attacker crafts (or corrupts) a ZIP file containing one DEFLATE-compressed entry with invalid/corrupted compressed bytes. Headers, CRC, and offsets can remain fully valid — only the compressed payload bytes need to be malformed.
  2. Victim application accepts this ZIP as an untrusted upload and processes it via any of adm-zip's async APIs, e.g.:
    const zip = new AdmZip(uploadedBuffer);
    zip.readFileAsync(zip.getEntries()[0], (data) => { /* ... */ });
    
  3. inflateAsync begins decompressing; zlib emits "error" on Z_DATA_ERROR.
  4. No listener exists for that event, so Node rethrows it as an uncaught exception, crashing the entire host process — killing all in-flight requests for every other user/tenant on that process, not just the attacker's own request.

Impact

Any Node.js service that accepts untrusted ZIP uploads and processes them via adm-zip's async API (the documented, recommended pattern for non-blocking servers) can be crashed by a single unauthenticated request containing one small malicious file. This is a full process-level denial of service, not a per-request error.

Proof of Concept

Attached: poc_async_dos.py. Summary of what it does:

  1. Builds a fully valid ZIP using adm-zip's own writer (new AdmZip(); zip.addFile(...); zip.toBuffer()), guaranteeing correct headers/CRC/offsets.
  2. Locates the local file header's compressed-data region via its own (untouched) size/offset fields and XORs every byte in that…
Record
GHSA-8238-w5pm-2374
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-248, CWE-400
Updated
2026-11-02
GitHub AdvisoriesGHSA-mr8q-rv22-x3fr 8.2

adm-zip before 0.6.1 contains an inconsistent entry resolution vulnerability that allows...

adm-zip before 0.6.1 contains an inconsistent entry resolution vulnerability that allows attackers to bypass content validation by supplying ZIP archives with duplicate entry names. Attackers can craft archives where getEntry() returns the last duplicate while extractAllTo() writes the first, causing unvalidated bytes to be written to disk.

Record
GHSA-mr8q-rv22-x3fr
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-436
Updated
2026-11-02
GitHub AdvisoriesGHSA-p634-w6r4-rjp2 5.9

adm-zip: Duplicate ZIP entry names: getEntry() and extractAllTo() resolve to different content

Summary

A ZIP file can contain two entries with the identical name. adm-zip keeps both in its internal entry list, but its name-lookup table only retains the last one written. getEntry(name) and extractAllTo() walk these two different internal structures, so they can each resolve a duplicate name to a different entry. An application that validates a named entry's contents via getEntry() before trusting an archive, then extracts the whole archive, can end up approving one file's content while a different file's bytes are what actually land on disk under that name.

Details

  • zipFile.js:58-83 retains both entries in entryList but overwrites entryTable[name] with only the last one written.
  • adm-zip.js:83-95,658-663 uses entryTable for getEntry() lookups — returns the last duplicate.
  • adm-zip.js:769-914 iterates entryList for extraction — writes the first duplicate (sync, default overwrite policy).

PoC

const AdmZip = require('adm-zip');
const z = new AdmZip({ noSort: true });
z.addFile('a.txt', Buffer.from('FIRST'));
z.addFile('b.txt', Buffer.from('SECOND'));
const raw = Buffer.from(z.toBuffer());
// rename the a.txt entry to b.txt directly in the raw bytes
for (let at = raw.indexOf('a.txt'); at >= 0; at = raw.indexOf('a.txt', at + 5)) {
  raw.write('b.txt', at);
}
const parsed = new AdmZip(raw, { noSort: true });
const validated = parsed.getEntry('b.txt').getData().toString();
parsed.extractAllTo(outDir, false);
// validated === "SECOND", but the file written to disk === "FIRST"

Reproduced on the pinned commit (2b4d84087d45344643e0183756e19191d52815cc)

Impact

An application that checks a named entry's content before trusting an untrusted ZIP, then extracts it, can be made to approve different bytes than what actually gets written to disk — the classic check/use split that this kind of validate-then-extract pattern relies on.

Record
GHSA-p634-w6r4-rjp2
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-436, CWE-696
Updated
2026-11-02
NVD 8.2

adm-zip before 0.6.1 contains an inconsistent entry resolution vulnerability that allows attackers to bypass content validation by supplying ZIP archives with duplicate entry names. Attackers can craft archives where getEntry() returns the last duplicate while extractAllTo() writes the first, causing unvalidated bytes to be written to disk.

Record
CVE-2026-114104
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-436
Updated
2026-11-02
Show 15 moreShow less
OSV 8.2

adm-zip before 0.6.1 Duplicate ZIP Entry Name Validation Bypass

adm-zip before 0.6.1 contains an inconsistent entry resolution vulnerability that allows attackers to bypass content validation by supplying ZIP archives with duplicate entry names. Attackers can craft archives where getEntry() returns the last duplicate while extractAllTo() writes the first, causing unvalidated bytes to be written to disk.

Record
CVE-2026-114104
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-436
Updated
2026-11-02
OSVGHSA-8238-w5pm-2374 7.5

adm-zip: Unhandled error event in async DEFLATE decompression crashes Node.js process (DoS)

Summary

Denial of Service in adm-zip's async decompression API allows an unauthenticated attacker to crash the entire Node.js host process by supplying a single malformed ZIP file.

Details

Affected package: adm-zip Affected versions: at least 0.6.0 (current latest); likely all versions containing the current inflateAsync implementation in methods/inflater.js Patched version: 0.6.1

Root Cause

methods/inflater.js:12-32 (inflateAsync) creates a zlib.createInflateRaw(option) stream and feeds it attacker-controlled compressed bytes via tmp.end(inbuf), but never registers an "error" listener on the stream:

inflateAsync: function (/*Function*/ callback) {
    var tmp = zlib.createInflateRaw(option),
        parts = [],
        total = 0;
    tmp.on("data", function (data) { parts.push(data); total += data.length; });
    tmp.on("end", function () { /* build buf, callback(buf) */ });
    tmp.end(inbuf);   // no tmp.on("error", ...) registered anywhere
}

Per Node.js EventEmitter/stream semantics, an "error" event emitted with zero listeners is rethrown as an uncaught exception on a later tick, originating from the zlib C++ binding. This cannot be caught by a try/catch wrapped around the calling code, because the throw happens asynchronously, outside the synchronous call stack the try/catch covers.

This code path is reached from every public async API that decompresses entry data: readFileAsync, readAsTextAsync, extractAllToAsync, and ZipEntry.getDataAsync (zipEntry.js:51, :97-120, :309-315; adm-zip.js:157-164, :192-210, :893).

This library recently patched CVE-2026-39244 (GHSA-xcpc-8h2w-3j85), an unbounded Buffer.alloc() on the synchronous decompression path. That fix added a maxOutputLength option to zlib.inflateRawSync/zlib.createInflateRaw, and the sync path's resulting throw is naturally catchable. The async path shares the same maxOutputLength option (methods/inflater.js:5) but has no error-handling on the stream at all, so it was not covered by that fix and remains exploitable via either of two independent triggers:

  1. A DEFLATE entry with corrupted/malformed compressed bytes (Z_DATA_ERROR) — no special crafting needed.
  2. Compressed data whose inflated size exceeds the declared central-directory size, which now trips the maxOutputLength guard — but on the stream this surfaces via the unhandled "error" event rather than a catchable throw.

Attack Vector

  1. Attacker crafts (or corrupts) a ZIP file containing one DEFLATE-compressed entry with invalid/corrupted compressed bytes. Headers, CRC, and offsets can remain fully valid — only the compressed payload bytes need to be malformed.
  2. Victim application accepts this ZIP as an untrusted upload and processes it via any of adm-zip's async APIs, e.g.:
    const zip = new AdmZip(uploadedBuffer);
    zip.readFileAsync(zip.getEntries()[0], (data) => { /* ... */ });
    
  3. inflateAsync begins decompressing; zlib emits "error" on Z_DATA_ERROR.
  4. No listener exists for that event, so Node rethrows it as an uncaught exception, crashing the entire host process — killing all in-flight requests for every other user/tenant on that process, not just the attacker's own request.

Impact

Any Node.js service that accepts untrusted ZIP uploads and processes them via adm-zip's async API (the documented, recommended pattern for non-blocking servers) can be crashed by a single unauthenticated request containing one small malicious file. This is a full process-level denial of service, not a per-request error.

Proof of Concept

Attached: poc_async_dos.py. Summary of what it does:

  1. Builds a fully valid ZIP using adm-zip's own writer (new AdmZip(); zip.addFile(...); zip.toBuffer()), guaranteeing correct headers/CRC/offsets.
  2. Locates the local file header's compressed-data region via its own (untouched) size/offset fields and XORs every byte in that…
Record
GHSA-8238-w5pm-2374
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-248, CWE-400
Updated
2026-11-02
OSVGHSA-p634-w6r4-rjp2 5.9

adm-zip: Duplicate ZIP entry names: getEntry() and extractAllTo() resolve to different content

Summary

A ZIP file can contain two entries with the identical name. adm-zip keeps both in its internal entry list, but its name-lookup table only retains the last one written. getEntry(name) and extractAllTo() walk these two different internal structures, so they can each resolve a duplicate name to a different entry. An application that validates a named entry's contents via getEntry() before trusting an archive, then extracts the whole archive, can end up approving one file's content while a different file's bytes are what actually land on disk under that name.

Details

  • zipFile.js:58-83 retains both entries in entryList but overwrites entryTable[name] with only the last one written.
  • adm-zip.js:83-95,658-663 uses entryTable for getEntry() lookups — returns the last duplicate.
  • adm-zip.js:769-914 iterates entryList for extraction — writes the first duplicate (sync, default overwrite policy).

PoC

const AdmZip = require('adm-zip');
const z = new AdmZip({ noSort: true });
z.addFile('a.txt', Buffer.from('FIRST'));
z.addFile('b.txt', Buffer.from('SECOND'));
const raw = Buffer.from(z.toBuffer());
// rename the a.txt entry to b.txt directly in the raw bytes
for (let at = raw.indexOf('a.txt'); at >= 0; at = raw.indexOf('a.txt', at + 5)) {
  raw.write('b.txt', at);
}
const parsed = new AdmZip(raw, { noSort: true });
const validated = parsed.getEntry('b.txt').getData().toString();
parsed.extractAllTo(outDir, false);
// validated === "SECOND", but the file written to disk === "FIRST"

Reproduced on the pinned commit (2b4d84087d45344643e0183756e19191d52815cc)

Impact

An application that checks a named entry's content before trusting an untrusted ZIP, then extracts it, can be made to approve different bytes than what actually gets written to disk — the classic check/use split that this kind of validate-then-extract pattern relies on.

Record
GHSA-p634-w6r4-rjp2
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-436, CWE-696
Updated
2026-11-02
OSVROOT-APP-NPM-GHSA-8238-w5pm-2374 7.5

GHSA-8238-w5pm-2374 in adm-zip - Patched by Root

Root has patched GHSA-8238-w5pm-2374 in the adm-zip package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-GHSA-8238-w5pm-2374
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-06
OSVCLSA-2026-1790854760 No score

TuxCare security update for adm-zip (1 CVE)

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

Record
CLSA-2026-1790854760
Updated
2026-11-02
OSVCLSA-2026-1790868332 No score

TuxCare security update for adm-zip (2 CVEs)

TuxCare rebuilt adm-zip to address 2 CVEs. Fixed in 0.5.18-tuxcare.6.

Record
CLSA-2026-1790868332
Updated
2026-11-07
OSVCLSA-2026-1790869902 No score

TuxCare security update for adm-zip (2 CVEs)

TuxCare rebuilt adm-zip to address 2 CVEs. Fixed in 0.5.17-tuxcare.4.

Record
CLSA-2026-1790869902
Updated
2026-11-07
OSVCLSA-2026-1791626885 No score

TuxCare security update for adm-zip (4 CVEs)

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

Record
CLSA-2026-1791626885
Updated
2026-11-07
OSVCLSA-2026-1791627044 No score

TuxCare security update for adm-zip (2 CVEs)

TuxCare rebuilt adm-zip to address 2 CVEs. Fixed in 0.4.4-tuxcare.3.

Record
CLSA-2026-1791627044
Updated
2026-11-07
OSVCLSA-2026-1791627198 No score

TuxCare security update for adm-zip (2 CVEs)

TuxCare rebuilt adm-zip to address 2 CVEs. Fixed in 0.4.7-tuxcare.3.

Record
CLSA-2026-1791627198
Updated
2026-11-02
OSVCLSA-2026-1791666093 No score

TuxCare security update for adm-zip (2 CVEs)

TuxCare rebuilt adm-zip to address 2 CVEs. Fixed in 0.4.4-tuxcare.4.

Record
CLSA-2026-1791666093
Updated
2026-11-07
OSVCLSA-2026-1791666194 No score

TuxCare security update for adm-zip (2 CVEs)

TuxCare rebuilt adm-zip to address 2 CVEs. Fixed in 0.5.12-tuxcare.3.

Record
CLSA-2026-1791666194
Updated
2026-11-02
OSVCLSA-2026-1791666292 No score

TuxCare security update for adm-zip (1 CVE)

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

Record
CLSA-2026-1791666292
Updated
2026-11-02
OSVCLSA-2026-1791981819 No score

TuxCare security update for adm-zip (4 CVEs)

TuxCare rebuilt adm-zip to address 4 CVEs. Fixed in 0.5.10-tuxcare.5.

Record
CLSA-2026-1791981819
Updated
2026-11-02
OSVCLSA-2026-1793281815 No score

TuxCare security update for adm-zip (2 CVEs)

TuxCare rebuilt adm-zip to address 2 CVEs. Fixed in 0.5.18-tuxcare.8.

Record
CLSA-2026-1793281815
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
adm-zip
npm
through 0.6.0
0.6.1
adm-zip
TuxCare:npm
0.6.0-tuxcare.0 up to 0.6.0-tuxcare.5, plus listed versions
0.6.00.6.0-tuxcare.10.6.0-tuxcare.20.6.0-tuxcare.30.6.0-tuxcare.4
0.6.0-tuxcare.5
adm-zip
TuxCare:npm
0.5.18-tuxcare.0 up to 0.5.18-tuxcare.6, plus listed versions
0.5.180.5.18-tuxcare.10.5.18-tuxcare.20.5.18-tuxcare.30.5.18-tuxcare.40.5.18-tuxcare.5
0.5.18-tuxcare.6
adm-zip
TuxCare:npm
0.5.17-tuxcare.0 up to 0.5.17-tuxcare.4, plus listed versions
0.5.170.5.17-tuxcare.10.5.17-tuxcare.20.5.17-tuxcare.3
0.5.17-tuxcare.4
adm-zip
TuxCare:npm
From an advisory covering 2 CVEs
0.4.16-tuxcare.0 up to 0.4.16-tuxcare.2, plus listed versions
0.4.160.4.16-tuxcare.1
0.4.16-tuxcare.2
adm-zip
TuxCare:npm
0.4.4-tuxcare.0 up to 0.4.4-tuxcare.3, plus listed versions
0.4.40.4.4-tuxcare.10.4.4-tuxcare.2
0.4.4-tuxcare.3
adm-zip
TuxCare:npm
0.4.7-tuxcare.0 up to 0.4.7-tuxcare.3, plus listed versions
0.4.70.4.7-tuxcare.10.4.7-tuxcare.2
0.4.7-tuxcare.3
adm-zip
TuxCare:npm
0.4.4-tuxcare.0 up to 0.4.4-tuxcare.4, plus listed versions
0.4.40.4.4-tuxcare.10.4.4-tuxcare.20.4.4-tuxcare.3
0.4.4-tuxcare.4
adm-zip
TuxCare:npm
0.5.12-tuxcare.0 up to 0.5.12-tuxcare.3, plus listed versions
0.5.120.5.12-tuxcare.10.5.12-tuxcare.2
0.5.12-tuxcare.3
adm-zip
TuxCare:npm
0.5.10-tuxcare.0 up to 0.5.10-tuxcare.4, plus listed versions
0.5.100.5.10-tuxcare.10.5.10-tuxcare.20.5.10-tuxcare.3
0.5.10-tuxcare.4
Show 5 moreShow less
Affected packages
PackageAffectedFixed
adm-zip
TuxCare:npm
From an advisory covering 2 CVEs
0.5.10-tuxcare.0 up to 0.5.10-tuxcare.5, plus listed versions
0.5.100.5.10-tuxcare.10.5.10-tuxcare.20.5.10-tuxcare.30.5.10-tuxcare.4
0.5.10-tuxcare.5
adm-zip
TuxCare:npm
0.5.18-tuxcare.0 up to 0.5.18-tuxcare.8, plus listed versions
0.5.180.5.18-tuxcare.10.5.18-tuxcare.20.5.18-tuxcare.30.5.18-tuxcare.40.5.18-tuxcare.50.5.18-tuxcare.60.5.18-tuxcare.7
0.5.18-tuxcare.8
adm-zip
npm
before 0.6.1
0.6.1
adm-zip
Root:npm
before 0.6.0-aikido.3
0.6.0-aikido.30.5.10-aikido.50.5.9-aikido.20.5.18-aikido.30.5.9-aikido.3
@rootio/adm-zip
Root:npm
before 0.6.0-root.io.3
0.6.0-root.io.30.5.10-root.io.50.5.9-root.io.20.5.18-root.io.30.5.9-root.io.3

History

History
RecordedChangedSources
affected, aliases, cwes, facts, published, referencesOSV
facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

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

In short

CVE-2026-114104 is a high vulnerability (CVSS 8.2) in Cthackers Adm-zip, published September 29, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.33%, the 26th percentile. Fixed in adm-zip 0.6.1.

References

Show 6 moreShow less
This page doesn't list everything

Left out here: the rest of 2 source descriptions. The JSON record has them.

MoveEnter Open