deps: bump h2 to 0.4.16 for RUSTSEC-2026-0258 - #883
Merged
Conversation
`cargo audit` has been failing on `main` since 2026-08-18: RUSTSEC-2026-0258
("h2 unbounded empty DATA frames", published 2026-08-17) flags `h2 0.4.14`
with a fix in `>=0.4.16`. It is transitive via `hyper`, `reqwest` and
`tonic`, so it is feature-gated in the build but `cargo audit` reads
`Cargo.lock` wholesale and fires regardless.
Edited the `h2` stanza directly rather than running
`cargo update -p h2 --precise 0.4.16`, because that re-resolves the whole
lock and, under MSRV-aware resolution against `rust-version = "1.88"`,
downgrades unrelated pins (`windows-sys` 0.61.2 -> 0.52.0, `socket2` 0.6.3
-> 0.5.10). `h2`'s own dependency list is identical between 0.4.14 and
0.4.16, so the two-line edit is exactly the intended change.
Verified with `cargo fetch --locked` (lock self-consistent, checksum
verifies on download) and `cargo check -p wingfoil --features
prometheus-integration-test`, the feature that pulls `h2` in via `hyper`
and `reqwest`.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gtvqds3f7LPbxT2RT2NzG6
4 tasks
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.
Summary
cargo audithas been failing onmainsince 2026-08-18. RUSTSEC-2026-0258 ("h2 unbounded empty DATA frames", published 2026-08-17) flagsh2 0.4.14, with the fix in>=0.4.16.h2is transitive viahyper,reqwestandtonic, so it is feature-gated in the build — butcargo auditreadsCargo.lockwholesale and fires regardless of which features are enabled. Every PR inherits the red check; #880 is currently blocked behind it through no fault of its own.The other ten findings in that job are
warning:lines (unmaintainedbincode/instant/mach/memmap/paste/rustls-pemfile, unsoundlru) and are already allowlisted — only the oneerror:fails the job.Changes
Cargo.lock—h20.4.14 → 0.4.16 (version + checksum, two lines)I edited the
h2stanza directly rather than runningcargo update -p h2 --precise 0.4.16. That command works, but it re-resolves the whole lock and, under MSRV-aware resolution againstrust-version = "1.88", downgrades unrelated pins as collateral —windows-sys0.61.2 → 0.52.0 in four places,socket20.6.3 → 0.5.10,windows-sys0.61.2 → 0.48.0 in another.h2's own dependency list is identical between 0.4.14 and 0.4.16, so the two-line edit is exactly the intended change and nothing else.Test plan
cargo fetch --locked— lock is self-consistent (cargo did not need to modify it) and the 0.4.16 checksum verifies on downloadcargo check -p wingfoil --features prometheus-integration-test— the feature that actually pullsh2in;cargo tree -i h2confirmsh2 v0.4.16underhyper v1.10.0andreqwest v0.12.28cargo audit— not run locally (not installed here); this PR's ownsecurity-auditjob is the check that mattersNo source files change, and
h2is not in the default-feature dependency tree.Generated by Claude Code