Skip to content

Move to zip 9 and calamine 0.37, and allow the retired zbus crates - #48

Merged
Yannicked merged 1 commit into
mainfrom
fix/deny-advisories
Oct 19, 2026
Merged

Yannicked merged 1 commit into
mainfrom
fix/deny-advisories

Conversation

@Yannicked

@Yannicked Yannicked commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

cargo-deny started failing on main on six advisories published after the last green run (see #47's CI).

zip (RUSTSEC-2026-0367, -0368, -0369): three extraction bugs around SUID bits and symlinks. The app only reads and writes archives in memory, so none is reachable here, but the fix is zip 9. calamine 0.37 moved to it too, and brings quick-xml 0.42, so all three move together and stay single in the tree. zip 9 adds nix on Unix.

Two API changes followed: zip hands out entry names as a Result<Cow<str>> (the archive viewer falls back to the raw bytes, lossily; a workbook part that doesn't decode is simply not one looked for), and quick-xml names and attribute values are str now. zip also enforces a part's declared uncompressed size itself, erroring as soon as a read runs past it; the viewer's own bomb check now reads exactly the claimed bytes and treats one byte more, or zip's refusal to give it, as the bomb. One test caught that.

zbus (RUSTSEC-2026-0370, -0371, -0372): zvariant, zbus_names and zvariant_derive were folded into zbus 6 and retired. Nothing here names them; they come with zbus 5 through accesskit, ashpd, ksni, notify-rust and the fastframe crates, none of which is on zbus 6 yet. Ignored in deny.toml with that reason, to drop once they move.

Checked locally with the pinned 1.98 toolchain: fmt, clippy with -D warnings, the whole test suite, rustdoc and cargo deny check.

+91 / −43 lines, of which 54 in Cargo.lock.

🤖 Generated with Claude Code

Three zip advisories and three unmaintained notices for crates folded
into zbus 6 failed cargo-deny. zip 9 brings calamine 0.37 and quick-xml
0.42 with it; entry names now come as a Result and XML names as str. zip
also checks a part's declared size itself now, so the viewer reads the
claimed bytes first and treats anything past them as the bomb it is.
@Yannicked
Yannicked merged commit 0b0fbba into main Oct 19, 2026
8 checks passed
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.

1 participant