Skip to content

chore(deps): zip 9 in the desktop app (fixes cargo audit on main) - #208

Merged
RobbinBouwmeester merged 1 commit into
mainfrom
chore/zip-9
Oct 17, 2026
Merged

RobbinBouwmeester merged 1 commit into
mainfrom
chore/zip-9

Conversation

@RobbinBouwmeester

Copy link
Copy Markdown
Member

cargo audit fails on main since #197 merged: rustls is fixed, but desktop/Cargo.lock still pins zip 8.6.0 (RUSTSEC-2026-0367, -0368, -0369; fixed in 9.0.0). The same failure shows on every open PR.

  • zip 8 -> 9 (9.0.4) in desktop/src-tauri/Cargo.toml; the lockfile adds nix and cfg_aliases.
  • zip 9 API: ZipFile::name() returns a Result, and FileOptions takes two lifetimes. Both call sites in thermo.rs are updated.
  • unzip() did not call the crate's vulnerable extract(), but it applied the archive's Unix mode as is, which is the SUID/SGID issue of RUSTSEC-2026-0367 in our own code. It now applies mode & 0o777.

Checked locally: cargo test thermo (14 passed, including the traversal and round-trip unzip tests), cargo clippy --all-targets -D warnings, and the CI cargo audit command (only the allowed proc-macro-error warning remains).

🤖 Generated with Claude Code

cargo audit fails on main for zip 8.6.0 (RUSTSEC-2026-0367, -0368, -0369,
all fixed in 9.0.0). The desktop app uses zip only to unpack the
ThermoRawFileParser release. zip 9 returns a Result from ZipFile::name and
gives FileOptions a second lifetime; both call sites are updated.

The advisories concern the crate's own extract(), which this code does not
call, but unzip() had the same SUID/SGID weakness as RUSTSEC-2026-0367: it
applied the archive's Unix mode as is. It now keeps the permission bits only
(mode & 0o777).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@RobbinBouwmeester
RobbinBouwmeester merged commit 18c0d09 into main Oct 17, 2026
12 checks passed
@RobbinBouwmeester
RobbinBouwmeester deleted the chore/zip-9 branch October 18, 2026 09:21
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