chore(deps): resolve cargo audit advisories - #142
Conversation
Bump h2, anyhow, rand, and chacha20 to patched versions to clear RUSTSEC-2026-0258 (h2 unbounded empty DATA frames), RUSTSEC-2026-0190 (anyhow downcast_mut unsoundness), RUSTSEC-2026-0097 (rand unsound with a custom logger), and the chacha20 0.10.1 yank. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WwfLs3zHKpxg6mB8XbGtLG
|
Claude finished @alukach's task in 1m 27s —— View job Review complete
✅ No blocking issues — safe to merge. The diff is a pure One non-blocking observation:
Simplify (ponytail) Nothing to flag — lockfile-only diff, no code to simplify. 💰 Estimated review cost: $0.40 · 1m26s · 25 turns |
|
Generated by Claude Code |
|
Re-ran
No new advisories beyond what's already fixed here, so skipping a duplicate PR per the scheduled task's dedup check. Generated by Claude Code |
What I'm changing
cargo auditonmainreported one actual vulnerability and several soundness/yank warnings:h20.4.13 is vulnerable to unbounded empty DATA frames (a resource-exhaustion DoS vector). This was the one advisory failing the CIAuditjob.anyhow1.0.102'sError::downcast_mut()is unsound (constructs an aliased mutable reference, UB under Stacked Borrows).rand0.8.5/0.9.2 are unsound when a customloglogger calls intorand::rng()/rand::thread_rng()during reseeding.chacha200.10.1 was yanked from crates.io; 0.10.2 is the current release.None of these are direct dependencies — all are pulled in transitively (
h2/rand/chacha20viareqwest/object_store,anyhowvia various crates), so noCargo.tomlchanges were needed, onlyCargo.lockupdates within existing semver ranges.How I did it
cargo update -p h2 --precise 0.4.16— clears RUSTSEC-2026-0258.cargo update -p anyhow --precise 1.0.103— clears RUSTSEC-2026-0190.cargo update -p rand@0.8.5 --precise 0.8.6andcargo update -p rand@0.9.2 --precise 0.9.3— clears RUSTSEC-2026-0097 for both rand lines in the tree.cargo update -p chacha20 --precise 0.10.2— clears the yanked-crate warning.Cargo.lockalso picked up a handful ofmultistore-*workspace-member entries moving from0.7.1to0.7.2, matching the version already set inCargo.toml/workspace.package— the lockfile was stale relative to that prior release bump and got resynced as a side effect ofcargo update.errno,quinn-udp,rustls-platform-verifier, andwinapi-utilmoved fromwindows-sys0.60.2/0.61.2 down to 0.52.0. This isn't a regression:ringhard-pinswindows-sys = "^0.52", and cargo's resolver unifies onto that shared entry once the lockfile is freshly re-resolved (confirmed — asking cargo to move the shared entry back up fails withring's pin as the blocker).windows-sysonly affects Windows builds (this project targets Linux/wasm32) and 0.52.0 carries no known advisory, so this is left as-is rather than fought.Not fixed
spin0.9.8 — yanked. Pulled in transitively vialazy_static(required byrsa→multistore-oidc-provider/multistore-sts), which pinsspin = "^0.9.8". The only newer release (0.10.1) is semver-incompatible with that requirement, so it can't be bumped without an upstream fix inlazy_static(or dropping it from the dependency tree). This is a yank warning, not a CVE.Test plan
cargo audit— no vulnerabilities; only thespinyank warning remains (unfixable, see above)cargo checkcargo check -p multistore-cf-workers --target wasm32-unknown-unknowncargo test(default workspace members)cargo fmt --checkcargo clippy -- -D warnings