RUSTSEC-2026-0343High· 7.5▾ TwilightOutgoing datagram buffer accounting can panic the sender in quinn-proto
▾ Twilight zone — High severity, or a signal on a lesser flaw
impact 41.3 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via OSV
Last analysed / modified upstream
The limit on memory used to buffer outgoing datagrams, introduced in 0.11.17, subtracted an
evicted datagram's size from the buffered byte counter twice when Datagrams::send was called
with drop = true (as Connection::send_datagram in the quinn crate does) while the buffer was
full. Under sustained eviction the counter drifts below its true value: debug builds panic with an
integer underflow, while release builds wrap the counter, drain the whole queue, and then panic on
a desynchronization check in a later send call. In quinn, this panic occurs while the
connection lock is held, poisoning it and causing a double panic (and thus an abort) when the
connection is dropped.
This can be triggered without a malicious peer, by an application that sends a burst of datagrams
and then idles. It can also be triggered by a peer that keeps the connection alive with PING frames
while withholding acknowledgements, so that the sender's congestion window stays closed and the
outgoing queue never drains. Applications that use send_datagram_wait are not affected.
Only 0.11.17 is affected; the flaw was corrected in 0.11.18 by removing the redundant subtraction.
Thanks to @alexpyattaev for reporting and @vcarus for fixing this issue.
quinn-proto >= 0.11.17, < 0.11.18Upgrade to a patched release:
quinn-proto 0.11.18Connected by shared product, vendor, weakness, or advisory.
RUSTSEC-2026-0340High· 7.5Peer minimum ACK delay can panic quinn-proto when ACK_FREQUENCY transmission is enabled
RUSTSEC-2026-0341High· 7.5Stream reassembly memory-exhaustion guard in quinn-proto can be bypassed
RUSTSEC-2026-0342NoneZero-length DATAGRAM frames bypass the receive buffer limit in quinn-proto
RUSTSEC-2026-0338NoneRemote peer can panic quinn-proto with zero-length STREAM frames during unordered reads
RUSTSEC-2026-0339NoneUnbounded growth of pending connection ID retirements in quinn-proto
CVE-2026-25800High· 7.5Remote memory exhaustion in quinn-proto from unbounded out-of-order stream reassembly