fix(deps): take the patched h2 for RUSTSEC-2026-0258 - #46
Conversation
h2 0.4.15 accepts and queues empty DATA frames without limit, which grows memory unboundedly on a stream nobody drains and panics when the length overflows. It reaches us transitively: reqwest -> hyper -> h2. The advisory landed after the last push to main, so the first CI run to see it was the dependabot lockfile bump that happened to follow it. That bump did not introduce this; any commit would have failed the audit. 0.4.16 is the patched release, and nothing but the lockfile moves.
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Restores a green
dependency-auditjob onmain.What broke
CI run 32167544185 failed the
dependency-auditjob on RUSTSEC-2026-0258 —h2accepts and queues empty DATA frames without limit, so a stream nobody drains grows memory unboundedly, and the length can overflow into a panic. Low severity. It reaches us transitively:reqwest 0.13.4 -> hyper 1.11.0 -> h2 0.4.15.What did not break it
That run was the merge of #45, but #45 is not the cause. It touched only
Cargo.lock, and it never touchedh2— it moved blake3, clap, rustix, rusqlite and thiserror.h2 0.4.15was already pinned before it.The advisory was published after the last push to
main(the v0.3.1 release on 2026-08-13). #45 was simply the first commit to reachmainafterwards, so it was the first run to see the advisory. Any commit would have failed the same way.The fix
cargo update -p h2, taking the patched 0.4.16. Lockfile only — version and checksum, five lines.Validation
Run locally against this branch:
scripts/gates.sh— passed (fmt,clippy -D warnings,cargo test --workspace, release build, distribution/site/docs validation, binary-size ceiling, deterministic plan and conformance replay, WebSocket oracle smoke, dynamic conformance including the fault-injection negative case)cargo audit --deny warnings— clean over 276 crates against 1217 advisoriescargo deny check advisories—advisories okcargo deny check bans licenses sources—bans ok, licenses ok, sources ok