Skip to content

Add advisory: zip unbounded symlink-target allocation (CVE-2026-115909) - #3451

Open
li-jin-quan wants to merge 1 commit into
rustsec:mainfrom
li-jin-quan:rustsec-zip-symlink-unbounded-alloc
Open

li-jin-quan wants to merge 1 commit into
rustsec:mainfrom
li-jin-quan:rustsec-zip-symlink-unbounded-alloc

Conversation

@li-jin-quan

Copy link
Copy Markdown

Adds crates/zip/RUSTSEC-0000-0000.md for CVE-2026-115909 / GHSA-q7v9-x93c-xqv3.

What the bug is:

  • ZipArchive::extract() sized the symlink-target buffer from uncompressed_size declared in the central directory, before reading any entry data.
  • Vec::with_capacity is infallible, so a refused reservation calls handle_alloc_error() and aborts the process. Not a panic: catch_unwind does not catch it.
  • A 112-byte archive declaring 2^62 is enough to get Aborted (core dumped) (exit 134). The declared size only has to exceed the address space, not the RAM.

Status upstream: the advisory was published 2026-10-22 and the CVE assigned 2026-10-26. The fix shipped in 9.0.0 via zip-rs/zip2#984; crates.io currently has 9.1.2. So patched = [">= 9.0.0"] and the embargo question does not apply here.

aliases carries both the CVE and the GHSA id. Does denial-of-service look like the right category, or would you rather file this under something else?

@djc

djc commented Oct 27, 2026

Copy link
Copy Markdown
Member

Please use the pull request template.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants