Skip to content

Fix critical Dependabot alerts (zip 9, website build deps) and raise MSRV to 1.88 - #65

Merged
jeffreyaven merged 1 commit into
mainfrom
fix/critical-dependabot-alerts
Oct 29, 2026
Merged

jeffreyaven merged 1 commit into
mainfrom
fix/critical-dependabot-alerts

Conversation

@jeffreyaven

@jeffreyaven jeffreyaven commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Fixes the six open critical Dependabot alerts.

Alert Package Where Fix
#254 zip <= 9.0.4 (zip cloaking, arbitrary file overwrite) Cargo.lock 0.6.6 -> 9.1.3
#246 proxy-addr < 2.0.8 website/yarn.lock 2.0.8 (within Docusaurus's range)
#242, #241 tinypool < 2.1.2 website/yarn.lock Yarn resolution ^2.1.2 (2.2.0)
#161 websocket-driver < 0.7.5 website/yarn.lock 0.7.5 (within range)
#140 shell-quote <= 1.8.3 website/yarn.lock 1.12.0 (within range)

Rust (zip)

This picks up the zip part of #63:

  • zip 9 needs Rust 1.88, so rust-version goes from 1.75 to 1.88. The crate had not actually built on 1.75 for several releases.
  • zip is built with default-features = false, keeping only the pure-Rust deflate backend (deflate-flate2-zlib-rs), so the release targets need no C toolchain. This also drops time 0.3.41 (RUSTSEC-2026-0009), pbkdf2 and base64ct from the lockfile.
  • Zip extraction moves into extract_zip. It now fails on symlink entries or entries whose path would leave the destination, where the old code silently skipped unsafe paths. It still writes plain files only, never applying archive permission bits. Three unit tests pin this: a normal archive, a ../ traversal and a symlink.
  • bytes and crossbeam-epoch are bumped too, so cargo audit reports no vulnerabilities (only the existing unmaintained/unsound warnings remain).
  • New MSRV Check CI job (cargo check --locked --all-targets on 1.88), and .cargo/config.toml with incompatible-rust-versions = "fallback". .cargo/** is added to the CI path filters.
  • AGENTS.md and CHANGELOG.md are updated.

Website

Docusaurus 3.9.2 (and 3.10.2) declares tinypool ^1.0.2, and the fix only exists in 2.x, hence the resolution. Docusaurus uses the worker pool only when future.experimental_faster.ssgWorkerThreads is enabled, which this site doesn't do, and tinypool 2.2.0 keeps every option Docusaurus passes to it. The other three were re-resolved within their existing semver ranges.

Verification

  • cargo fmt -- --check, cargo clippy --all-targets -- -D warnings, cargo test --lib (106 passed) and cargo test --test '*' all pass; cargo doc --no-deps succeeds.
  • cargo +1.88 check --locked --all-targets passes.
  • cargo audit: 0 vulnerabilities.
  • End to end on Windows x64: stackql-deploy upgrade downloaded stackql_windows_amd64.zip, extracted it with zip 9, and the resulting stackql.exe --version reports v0.12.824. The runtime smoke test on push to main covers extraction on all six targets.
  • yarn build of the website succeeds.

Closes #63. It covers the advisories, the MSRV declaration, the MSRV CI job, the resolver config and the extraction tests.

- Upgrade zip 0.6.6 to 9.1.3 (deflate via pure-Rust zlib-rs only), fixing
  the critical zip cloaking advisory and RUSTSEC-2026-0367/0368/0369. This
  also removes time 0.3.41 (RUSTSEC-2026-0009), pbkdf2 and base64ct.
- Move zip extraction into extract_zip, which rejects symlink and
  path-escaping entries, with unit tests pinning that behaviour.
- Update bytes and crossbeam-epoch so cargo audit reports no vulnerabilities.
- Raise rust-version to 1.88 (required by zip 9), add an MSRV Check CI job
  and an MSRV-aware resolver in .cargo/config.toml.
- Website: update proxy-addr, websocket-driver and shell-quote within range
  and resolve tinypool to ^2.1.2.

Refs #63

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jeffreyaven
jeffreyaven merged commit 27135d8 into main Oct 29, 2026
10 checks passed
@jeffreyaven
jeffreyaven deleted the fix/critical-dependabot-alerts branch October 29, 2026 05:59
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.

Clear pre-existing cargo-audit advisories (zip 0.6, time, bytes, crossbeam-epoch) and fix the stale MSRV declaration

1 participant