Skip to content

audit: ignore quinn-proto RUSTSEC-2026-0338..0342; fix flaky test_store_decrypted_module (flush) - #25

Merged
secsovereign merged 2 commits into
mainfrom
fix/quinn-proto-advisories
Oct 15, 2026
Merged

secsovereign merged 2 commits into
mainfrom
fix/quinn-proto-advisories

Conversation

@secsovereign

@secsovereign secsovereign commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

cargo audit fails on five quinn-proto advisories against 0.11.15: RUSTSEC-2026-0338, 0339, 0340, 0341 and 0342.

Why ignores and not a bump: fixed versions exist (0.11.17 and 0.11.18; latest is 0.11.19), but quinn-proto 0.11.17+ needs rand 0.10, which pulls stable chacha20 0.10 and cipher 0.5. That can't resolve alongside iroh =0.95's crypto_box 0.10.0-pre.0, which pins chacha20 0.10.0-rc.2 and the rc digest/crypto-common. Both cargo update -p quinn-proto --precise 0.11.18 and a direct quinn-proto >=0.11.18 floor fail to resolve. The real exit is an iroh bump (1.x), which is out of scope here.

Change: add five ignores to .cargo/audit.toml with a reason and exit criterion, plus matching rows in docs/AUDIT_SUPPRESSIONS.md. No Cargo.toml or consensus changes. The quinn-proto git patch is unchanged.

Exposure: remote-peer DoS (panics or memory growth) on the optional QUIC transport (quinn / h3-quinn) only.

Local verification (crates.io blvm-*, [patch.crates-io] stripped locally and not committed, -j 2):

  • cargo audit: exit 0, no vulnerabilities, 10 allowed warnings.
  • cargo test --lib: 1428 passed, 1 failed, 2 ignored. The one failure, r66_win_holds_h_when_not_ibd_ready, passed when rerun alone. It is a timing flake unrelated to this change.

Also fixes flaky test_store_decrypted_module (failed on #24 run 38592533533, incl. rerun: binary file exists but is empty). Root cause: store_decrypted_module (src/module/encryption.rs) called tokio write_all and dropped the File without flush(); tokio's file write can still be in flight on the blocking pool, so a reader can see an empty file. Fix: file.flush().await with error propagated (same as store_encrypted_module already does). Commit 3c52be8.

Local: tests/module_encryption_tests.rs 10/10 runs pass (--test-threads=8); cargo test --lib 1429 passed, 0 failed, 2 ignored.

Grok Bot Engineer and others added 2 commits October 14, 2026 12:09
…ed_module

tokio::fs::File::write_all can return while the write is still in flight on
the blocking pool; dropping the handle without flush let readers observe an
empty file (flaky test_store_decrypted_module in CI). Mirrors the existing
flush in store_encrypted_module.
@secsovereign secsovereign changed the title audit: ignore quinn-proto RUSTSEC-2026-0338..0342 (fix blocked by iroh 0.95) audit: ignore quinn-proto RUSTSEC-2026-0338..0342; fix flaky test_store_decrypted_module (flush) Oct 14, 2026
@secsovereign
secsovereign merged commit d28b747 into main Oct 15, 2026
12 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