Repository navigation
Conversation
`cargo audit` fails on RUSTSEC-2026-0338, RUSTSEC-2026-0340 and RUSTSEC-2026-0343 against `quinn-proto` 0.11.17. All three are fixed in 0.11.18; this takes 0.11.19, the latest 0.11 release. They reached the RustSec database on 2026-10-12. Since then `main`'s lockfile fails `cargo audit`, and the Security Audit job fails whenever CI runs on a PR that still locks `quinn-proto` 0.11.17. `quinn-proto` is in `Cargo.lock` only. `reqwest`'s `rustls` feature carries the weak feature `quinn?/rustls-aws-lc-rs`, and Cargo records that optional dependency in the lockfile although `http3`, the only `reqwest` feature that enables `quinn`, is off. The unique package lines of `cargo tree --locked --all-features --target all -e normal,build,dev --prefix none --no-dedupe` are the same 606 before and after this change, none of them `quinn-proto`, so no compiled crate changes. Only the `quinn-proto` entry changes. `cargo update -p quinn-proto` also moves `tempfile` from `getrandom` 0.4.3 to 0.3.4, a compiled crate this fix has no reason to touch, so that line is kept as it was. 0.11.17 and 0.11.19 declare the same dependencies, and cargo 1.95, 1.98 and 1.99 accept the lockfile under `--locked` and find nothing to change with `--precise 0.11.19`.
dirvine
approved these changes
Oct 13, 2026
dirvine
left a comment
Member
There was a problem hiding this comment.
Reviewed at head 989bc16. Verdict: APPROVE.
Two-line Cargo.lock change: quinn-proto 0.11.17 -> 0.11.19 (version + checksum only). Verified:
- New checksum 0e750cca... matches crates.io for quinn-proto 0.11.19; not yanked.
- Dependency list byte-identical to the 0.11.17 entry; hand-edit internally consistent.
- RUSTSEC-2026-0338 / 0340 / 0343 all patched in >= 0.11.18; 0.11.19 clears them.
- cargo metadata --locked accepts the lockfile locally.
- CI: Security Audit, Clippy, Format, Docs, Rust 1.95 MSRV, Test (no logging) all pass. Build/Test/Storage jobs were still running at time of review — no failures observed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linear issue
Closes V2-1518
Risk tier
Proposed rather than asserted, as on #209. No build compiles the crate this changes, so no binary, behaviour, wire format or stored format moves. T0 would fit as well; T1 matches the precedent.
Compatibility
Semver impact
Test evidence
Run on this branch, one commit on top of
mainatf8008ef4.cargo audit: exit 0, leaving only the seven warnings already allowed onmain. Onmain's ownCargo.lockit fails with RUSTSEC-2026-0338, RUSTSEC-2026-0340 and RUSTSEC-2026-0343.cargo tree --locked --all-features --target all -e normal,build,dev --prefix none --no-dedupe | sort -u: the same 606 unique package lines onmainand on this branch, byte for byte, andquinn-protois not one of them. Nothing that is compiled changes.cargo metadata --lockedaccepts the lockfile on cargo 1.95 (MSRV), 1.98 and 1.99, andcargo update -p quinn-proto --precise 0.11.19 --dry-runfinds nothing to change on any of them.quinn-proto-0.11.19.crateand the crates.io sparse index both give0e750cca…, not yanked.rust-version(1.85), so the entry's dependency list is still correct.cargo clippy --all-targets --all-features -- -D warnings(the CI form),cargo clippy -- -D warnings,cargo fmt --all -- --check, andcargo doc --no-depswith-D warnings, with and without--all-features: clean.The test suites were not rerun: with the compiled dependency graph unchanged, they would build and run exactly what they build and run on
main.New dependency
None. An existing lockfile entry,
quinn-proto, moves from 0.11.17 to 0.11.19. No entry is added or removed.ADR
n/a, Tier 1.
Mitigation / rollback
Revert the commit. It touches only
Cargo.lockand no compiled crate, so there is nothing to migrate either way.What this is
The Security Audit job fails on three advisories against
quinn-proto0.11.17, all fixed in 0.11.18. This takes 0.11.19, the latest 0.11 release.They reached the RustSec database on 2026-10-12, after the last Security Audit runs on #249 and #250 passed. Since then
main's lockfile failscargo audit, and the Security Audit job fails whenever CI runs on a PR that still locksquinn-proto0.11.17.Why
quinn-protois in the lockfile at allreqwestis built withjsonandrustls. Itsrustlsfeature includes__rustls-aws-lc-rs, which carries the weak featurequinn?/rustls-aws-lc-rs. Cargo records the optionalquinn(and soquinn-proto) inCargo.lockfor that weak feature, but onlyreqwest'shttp3feature enablesquinn, and it is off. That is whycargo audit, which reads the lockfile, reports the crate whilecargo treecannot find it.Why the diff is two lines
cargo update -p quinn-protoalso movestempfilefromgetrandom0.4.3 to 0.3.4.tempfileis compiled, and an advisory fix has no reason to change it, so that line is left asmainhas it. The checks above show cargo accepts the result as it stands.