---
id: CVE-2026-115905
title: >-
  zip: Critical Parser Differential & Security Control Bypass via Dual-Header
  Inconsistencies (Zip Cloaking) Leading to Arbitrary File Overwrite & RCE
summary: >-
  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 …
severity: critical
cvss: 10
cvssVector: 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L'
cvssSource: cna
cwe:
  - CWE-20
  - CWE-436
vendor: zip-rs
product: zip2
affected:
  - zip2 < 9.0.5
ssvc:
  exploitation: poc
  automatable: 'yes'
  technicalImpact: total
  timestamp: '2026-11-02T17:45:56.554993Z'
exploitAvailable: true
published: '2026-10-26'
updated: '2026-11-02'
sourceUpdated: '2026-11-02T17:47:27.682Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-115905'
references:
  - url: 'https://github.com/zip-rs/zip2/security/advisories/GHSA-m665-v7pm-7grj'
    label: 'https://github.com/zip-rs/zip2/security/advisories/GHSA-m665-v7pm-7grj'
  - url: >-
      https://github.com/zip-rs/zip2/commit/8068ab480ccf8daa7411424e365fcdbe6d09443e
    label: >-
      https://github.com/zip-rs/zip2/commit/8068ab480ccf8daa7411424e365fcdbe6d09443e
  - url: 'https://github.com/zip-rs/zip2/releases/tag/v9.0.5'
    label: 'https://github.com/zip-rs/zip2/releases/tag/v9.0.5'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-115905'
  - url: 'https://github.com/zip-rs/zip2'
  - url: 'https://github.com/advisories/GHSA-m665-v7pm-7grj'
tags:
  - cve.org
  - exploit-available
  - osv
  - rust
  - ghsa
epss: 0.0032
epssPercentile: 0.25121
exploits:
  github: 2
  githubRepos:
    - 'https://github.com/cosmonic-labs/demo-zip-rce-sandbox'
    - 'https://github.com/foxcornlab/zip-cloaking-scanner'
  checkedAt: '2026-11-05T19:31:18.366Z'
aliases:
  - GHSA-m665-v7pm-7grj
ecosystem: rust
patched:
  - zip 9.0.5
ingestedAt: '2026-10-26T16:31:40.051Z'
---

## Overview

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

- `zip2 < 9.0.5`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-115905)

Affected packages:

- `zip < 9.0.5`

Patched in:

- `zip 9.0.5`

Source: https://osv.dev/vulnerability/GHSA-m665-v7pm-7grj
