GHSA-wppq-2f6r-wfvm
Long Retry token can panic or exhaust memory in a QUIC client
GHSA-wppq-2f6r-wfvm is a vulnerability with no CVSS score yet in quinn-proto, published September 30, 2026. No source lists public exploit code. Fixed in quinn-proto 0.11.19.
- Severity
- UnratedNo CVSS score yet
- Exploit chance
- UnscoredNo EPSS score yet
- Exploitation
- None knownNot on CISA’s or ENISA’s lists
- Fixed in
0.11.19quinn-proto
Description
A client kept the token from a Retry packet without any length limit and put it into the header of every Initial packet it sent afterwards. Initial datagrams are 1200 bytes. When the token and connection IDs left no room for the minimum payload, PacketBuilder::new computed a minimum packet size larger than the maximum, which only a debug assertion checked. On the next poll_transmit, debug builds panic, and release builds try to allocate more than 10 GiB in one call. With longer tokens the allocation fails and the process aborts.
A matching Retry packet can be built from the client's first Initial alone. The attacker can therefore be the server being contacted, or anyone who sees that Initial and can answer before the server does. Every application that makes outgoing connections with quinn-proto is affected, including all quinn clients. Servers do not process Retry packets.
The fix closes the connection with PROTOCOL_VIOLATION when an Initial token leaves too little room for frames. That covers Retry tokens and cached address-validation tokens, since both come from the peer. It also reserves room for CONNECTION_CLOSE after large Initial headers. Both changes are in 0.11.19.
Affected packages
| Package | Affected | Fixed |
|---|---|---|
quinn-protocrates.io | 0.11.0 up to 0.11.19 | 0.11.19 |
What each source reports
OSVRUSTSEC-2026-0524No score
Long Retry token can panic or exhaust memory in a QUIC client
A client kept the token from a Retry packet without any length limit and put it into the header of every Initial packet it sent afterwards. Initial datagrams are 1200 bytes. When the token and connection IDs left no room for the minimum payload, PacketBuilder::new computed a minimum packet size larger than the maximum, which only a debug assertion checked. On the next poll_transmit, debug builds panic, and release builds try to allocate more than 10 GiB in one call. With longer tokens the allocation fails and the process aborts.
A matching Retry packet can be built from the client's first Initial alone. The attacker can therefore be the server being contacted, or anyone who sees that Initial and can answer before the server does. Every application that makes outgoing connections with quinn-proto is affected, including all quinn clients. Servers do not process Retry packets.
The fix closes the connection with PROTOCOL_VIOLATION when an Initial token leaves too little room for frames. That covers Retry tokens and cached address-validation tokens, since both come from the peer. It also reserves room for CONNECTION_CLOSE after large Initial headers. Both changes are in 0.11.19.
- Record
RUSTSEC-2026-0524- Updated
- 2026-11-13
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
References
crates.io/crates/quinn-proto
rustsec.org/advisories/RUSTSEC-2026-0524.html
github.com/quinn-rs/quinn/commit/3bba467893ceff64d6cda0b3a2c51a1429e10372
github.com/quinn-rs/quinn/commit/d45b5136ed1d5b2b04ff6456443c0662acf1d0d3
github.com/quinn-rs/quinn/commit/74c33ff75281d7751488e410e21e4f030782b655
github.com/quinn-rs/quinn/commit/a6e78d1c8bf28630f1e92fbcc38f60e0a134b01a