Description
zip is a zip library for Rust that supports reading and writing simple ZIP files. From 5.1.0 until 9.0.0, applications built with the legacy-zip feature can reserve output capacity from an attacker-controlled ZIP64 uncompressed size before validating the compressed stream. The ShrinkDecoder path in src/legacy/shrink.rs can panic with a capacity overflow during ZipArchive::extract, and the Reduce and Implode decoders contain the same unbounded preallocation pattern. An unhandled panic can terminate an archive-processing service. This issue is fixed in version 9.0.0.
Published: 2026-10-26
Score: 7.5 High
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Apply Patch
AI Analysis

Impact

A buffer allocation flaw in the zip-rs/zip2 library's legacy Shrink, Reduce, and Implode decoders allows an attacker to supply a ZIP64 entry with an unbounded uncompressed size; the decoder reserves memory based on this value before validating the compressed data, causing a capacity overflow and an unhandled panic that terminates the application. The vulnerability results in a denial‑of‑service condition. It is rooted in improper input validation and unbounded allocation (CWE‑400, CWE‑789).

Affected Systems

The vulnerability affects the zip-rs/zip2 library when the legacy‑zip feature is enabled, covering all releases from version 5.1.0 up to, but not including, 9.0.0. Applications built with this feature that process ZIP archives are susceptible. The library is distributed under the zip‑rs project on GitHub.

Risk and Exploitability

The CVSS score of 7.5 indicates a high‑severity problem. No EPSS value is available, and the issue is not listed in the CISA KEV catalog, which suggests it is not a prominently exploited vulnerability yet. An attacker can deliver a malicious ZIP file to any service that uses the vulnerable library, causing a panic during extraction or an unbounded memory preallocation. The exploit is straightforward for code that calls ZipArchive::extract without additional checks on ZIP64 sizes.

Generated by OpenCVE AI on October 26, 2026 at 17:22 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the latest zip2 v9.0.0 or newer to ensure the preallocation bug is fixed
  • If an upgrade is not yet possible, disable the legacy‑zip feature or configure the library to reject ZIP64 entries with unrealistically large uncompressed sizes
  • Monitor application logs for panic events and employ a watchdog or container restart policy to recover services quickly

Generated by OpenCVE AI on October 26, 2026 at 17:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 26 Oct 2026 16:45:00 +0000

Type Values Removed Values Added
Description zip is a zip library for Rust that supports reading and writing simple ZIP files. From 5.1.0 until 9.0.0, applications built with the legacy-zip feature can reserve output capacity from an attacker-controlled ZIP64 uncompressed size before validating the compressed stream. The ShrinkDecoder path in src/legacy/shrink.rs can panic with a capacity overflow during ZipArchive::extract, and the Reduce and Implode decoders contain the same unbounded preallocation pattern. An unhandled panic can terminate an archive-processing service. This issue is fixed in version 9.0.0.
Title zip: legacy Shrink/Reduce/Implode decoder: denial of service from attacker-controlled ZIP64 uncompressed size
Weaknesses CWE-400
CWE-789
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-26T16:32:15.373Z

Reserved: 2026-10-23T20:21:45.106Z

Link: CVE-2026-115907

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-26T17:17:18.147

Modified: 2026-10-26T17:17:18.147

Link: CVE-2026-115907

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-26T17:30:16Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-789

    Memory Allocation with Excessive Size Value