Skip to content

Navigation Menu

Sign in
Sign up

build(deps): Bump quinn-proto from 0.11.14 to 0.11.16 - #180

Open
dependabot[bot] wants to merge 1 commit into
master from
dependabot/cargo/quinn-proto-0.11.16
Open

build(deps): Bump quinn-proto from 0.11.14 to 0.11.16 #180
dependabot[bot] wants to merge 1 commit into
master from
dependabot/cargo/quinn-proto-0.11.16

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 27, 2026

Copy link
Copy Markdown

Bumps quinn-proto from 0.11.14 to 0.11.16.

Release notes

Sourced from quinn-proto's releases.

quinn-proto-0.11.16

What's Changed

Commits
  • a96949f Take semver-compatible update for anyhow
  • 5429f60 udp: bump version to 0.5.15
  • 262a493 proto: bump version to 0.11.16
  • c19b63a Upgrade rustls-platform-verifier to 0.7
  • aff3652 Disable default features for fastbloom
  • 01b2eee Upgrade fastbloom to 0.17
  • 2c82013 Switch BBR RNG to PCG
  • 544dd9e Upgrade to rand 0.10.1
  • a7499b8 Bump versions for release
  • 7c1970f proto: yield error on too many gaps in assembler
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps [quinn-proto](https://github.com/quinn-rs/quinn) from 0.11.14 to 0.11.16.
- [Release notes](https://github.com/quinn-rs/quinn/releases)
- [Commits](quinn-rs/quinn@quinn-proto-0.11.14...quinn-proto-0.11.16)
---
updated-dependencies:
- dependency-name: quinn-proto
 dependency-version: 0.11.16
 dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Jul 27, 2026

@kevinelliott kevinelliott left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — bump quinn-proto 0.11.14 → 0.11.16

Routine patch bump, safe to merge:

  • Only Cargo.lock changes; quinn = "0.11" in Cargo.toml already covers this range, so no manifest churn.
  • We pull quinn-proto in transitively via quinn for the asf-2.0 QUIC output — it's on the ingest path, not the decode path, so blast radius is limited.
  • The 0.11.14→0.11.16 range is dependency upgrades (anyhow, rand 0.10, rustls-platform-verifier 0.7, fastbloom 0.17) plus one nice upstream robustness fix — proto: yield error on too many gaps in assembler — which hardens the QUIC reassembler against malformed/adversarial streams. Good to take.
  • CI (build + decode-counts) is green.

No concerns. 👍

@kevinelliott kevinelliott left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: don't merge as-is, but don't close it either — this is a security fix

Verified locally against current master (6a768a2). Summary: the bump is correct and security-relevant, but the branch is stale and merging it lands a broken Cargo.lock. Regenerate on current master instead.

1. This closes a live High-severity advisory

quinn-proto 0.11.15 patches RUSTSEC-2026-0185 / CVE-2026-25800 / GHSA-4w2j-m93h-cj5j (CVSS 7.5, AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H): remote memory exhaustion from unbounded out-of-order stream reassembly in Assembler.

The advisory specifically calls out consumers that read from a RecvStream in order — a peer sends later fragments while withholding early ones, and the receiver buffers them unboundedly. That is exactly the shape of src/commands/ingest.rs, which runs a quinn::Endpoint::server(...) with with_no_client_auth(), accepts arbitrary inbound connections, and reads with recv.read_exact(...) in a loop. src/outputs/asf2_quic.rs is the client side.

master is still on the vulnerable 0.11.14:

name = "quinn-proto"
version = "0.11.14"
checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098"

So this PR is not obsolete, and it has been sitting open since 2026年07月27日 with an unauthenticated QUIC listener on the vulnerable version.

(RUSTSEC-2026-0037 and RUSTSEC-2024-0373 are already satisfied at 0.11.14.)

2. The scary-looking lockfile churn is fine — it's staleness plus a legitimate cascade

For anyone who looked at the diff and got nervous (I did): the extra churn is not dependabot regenerating lossily.

The branch's merge-base is 7a8ac7e; master has since gained the ZeroMQ output, which pulled in ~14 crates (zeromq, async-io, futures, polling, scc, ...). The branch predates that, which accounts for most of the deletions. Two-dot master..branch shows 90 insertions / 319 deletions; the three-dot diff shows 90 / 122.

The branch's own change is a coherent transitive cascade:

quinn-proto 0.11.14 → 0.11.16
rustls-platform-verifier 0.6.2 → 0.7.0
jni 0.21.1 / jni-sys → jni 0.22.4 / jni-macros
cesu8 1.1.0 → simd_cesu8 1.2.0 + simdutf8
fastbloom 0.14.1 → 0.17.0 ; rand 0.9.4 → 0.10.2
windows-sys 0.45.0 + 8 windows_* 0.42.2 dropped (obsolete jni chain)

Running cargo update -p quinn-proto --precise 0.11.16 on a clean checkout of current master reproduces exactly this add/remove/update set.

The windows-sys 0.61.2 → 0.60.2 "downgrade" is an edge re-pointing, not a removal — all refs contain both versions. rustls-platform-verifier 0.7.0 requires windows-sys ^0.60, so cargo unified the range-flexible consumers (rustix, errno, tempfile, ... which declare >=0.52, <=0.61) onto 0.60.2. Net effect is deduplication: 4 copies of windows-sys → 3, total crates 469 → 446.

3. Why it still shouldn't be merged: the lockfile merges clean and is wrong

Merging this branch into current master produces no conflict in Cargo.lock — and an invalid lockfile:

$ cargo metadata --locked
error: cannot update the lock file ... because --locked was passed to prevent this

The textual merge silently drops rand 0.9.5, rand_chacha 0.9.0, rand_core 0.9.5, which master's zeromq 0.6.0 still requires. Classic false-clean Cargo.lock merge.

This wouldn't show up as a red build, which is the worrying part: no CI job passes --locked (rust.yml, release.yml, bench.yml, and the Dockerfile all omit it), so CI would silently regenerate and go green while the committed lockfile stayed incoherent.

The branch in isolation is fine — cargo metadata --locked exit 0, cargo check --locked --no-default-features exit 0.

Recommendation

Rebase or regenerate on current master rather than merging this branch:

cargo update -p quinn-proto --precise 0.11.17

0.11.17 shipped 2026年08月17日, so 0.11.16 is already a patch behind — though 0.11.16 alone does clear the advisory. I ran the 0.11.16 form on a clean master checkout and confirmed cargo metadata --locked and cargo check --locked --no-default-features both exit 0 with rand 0.9.4 <-- zeromq 0.6.0 correctly retained. Either let dependabot rebase, or apply directly and close this PR.

Two suggestions beyond this PR

  1. Add --locked to CI. It is what turns a silently-incoherent lockfile into a failing build, and it is the reason this class of problem is invisible today.
  2. Add cargo audit or cargo-deny. A High-severity advisory against an internet-facing listener sat on master for ~2 months; a scheduled audit job surfaces that on day one instead of via a dependabot PR nobody triaged.

Scope note: the quinn upstream changelogs for 0.11.15–0.11.17 could not be fetched from this environment (GitHub API and rustsec.org are blocked by the egress proxy), so the security claim rests on the advisory-db entry and non-security changes in those releases are unreviewed.


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@kevinelliott kevinelliott kevinelliott left review comments

Assignees

No one assigned

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

AltStyle によって変換されたページ (->オリジナル) /