CVE-2026-115905
NoneCVSS
—
EPSS
0.3%
Published
Oct 26, 2026
CISA due date
—
Cloudanix analysis
A file-handling component in some software can be tricked by specially made archive files into writing data to the wrong places, potentially damaging or taking control of the affected programs.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
ZipArchive and ZipStreamReader in the zip Rust crate through 9.0.4 read filenames from mismatched ZIP header structures (central directory vs local file header) without reconciliation, allowing a crafted archive to present benign metadata to directory-based inspection while directing a streaming extractor to write attacker-controlled paths and content.
Why it matters to the business
Applications that extract ZIP archives via streaming can have arbitrary files overwritten, resulting in service disruption, data corruption, or potential execution of attacker-supplied code within four days of disclosure.
How an attack unfolds
An attacker constructs a ZIP archive whose central directory contains innocuous filenames while the local file headers specify different, malicious paths and payloads. When a downstream service uses ZipStreamReader for extraction, the library writes the attacker-selected content to the chosen locations without validation, bypassing any central-directory inspection performed by ZipArchive.
How to fix it
Upgrade the zip crate to version 9.0.5 or later; rebuild and redeploy all dependent Rust binaries; replace any direct use of ZipStreamReader with reconciled extraction logic until the update is complete.
How to confirm the fix worked
Inspect Cargo.lock or equivalent dependency manifests for zip versions prior to 9.0.5; run the library's test suite against archives that contain mismatched header filenames to confirm path reconciliation now occurs.
Typical attack path
- Create a ZIP archive with deliberately mismatched central-directory and local-file-header metadata
- Deliver the archive to a target application that processes it with the vulnerable zip crate
- Trigger extraction through ZipStreamReader on the crafted archive
- Overwrite files at attacker-chosen paths on the target system
How to detect it
Review application logs for ZIP extraction events that result in files written outside expected directories; search dependency manifests and runtime process lists for the vulnerable zip crate version.
What your security team should do
- Immediately upgrade all instances of the zip crate to 9.0.5
- Audit codebases for usage of ZipStreamReader and replace with reconciled extraction
- Add automated dependency scanning to block future vulnerable versions
- Monitor extraction operations for unexpected file writes
The record
zip is a zip library for Rust that supports reading and writing simple ZIP files. Through 9.0.4, ZipArchive treats Central Directory File Header filenames as authoritative while ZipStreamReader extracts using Local File Header filenames without reconciling the duplicate metadata in src/read/stream.rs. A crafted archive can therefore appear benign to a component that inspects the central directory but cause a streaming extractor to write a different attacker-selected path and content, potentially overwriting files used by a downstream service. This issue is fixed in version 9.0.5.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-63339 IXP Manager is a full-stack web application for managing Internet Exchange Points. CWE-20
- CVE-2026-62958 libriscv is a RISC-V sandbox and emulator. CWE-20
- CVE-2026-119342 Stirling-PDF is a locally hosted web application that facilitates various operations on… CWE-20
- CVE-2026-119339 Tesseract is an open source OCR engine. CWE-20
- CVE-2026-62335 OpenVM is a performant and modular zkVM framework built for customization and… CWE-20
- CVE-2026-62337 SNARK Verifier is a generic (S)NARK verifier. CWE-20
- CVE-2026-62333 OpenVM is a performant and modular zkVM framework built for customization and… CWE-20
- CVE-2026-61618 SNARK Verifier is a generic (S)NARK verifier. CWE-20