github-actions[bot] opened a new issue, #3428:
URL: https://github.com/apache/iceberg-rust/issues/3428

   
   > Zero-length DATAGRAM frames bypass the receive buffer limit in quinn-proto
   
   | Details             |                                                |
   | ------------------- | ---------------------------------------------- |
   | Package             | `quinn-proto`                      |
   | Version             | `0.11.16`                   |
   | URL                 | 
[https://github.com/quinn-rs/quinn/pull/2790](https://github.com/quinn-rs/quinn/pull/2790)
 |
   | Date                | 2026-08-17                         |
   | Patched versions    | `>=0.11.17`                  |
   | Unaffected versions | `<0.5.0`               |
   
   quinn-proto bounds its queue of received datagrams by charging each queued 
frame&#39;s payload length
   against `TransportConfig::datagram_receive_buffer_size`, evicting the oldest 
datagrams when the
   limit is exceeded. A DATAGRAM frame with an empty payload was charged zero 
bytes, so it never
   triggered eviction and was appended to the queue, which has no other bound.
   
   DATAGRAM frames are not subject to flow control. A peer that has completed 
the handshake can
   therefore send a stream of empty DATAGRAM frames and grow the receiver&#39;s 
heap without limit until
   the process is killed. An application that reads incoming datagrams but does 
so more slowly than
   the peer sends them is still affected. Receiving datagrams is enabled by 
default, so all endpoints
   that do not explicitly set `datagram_receive_buffer_size(None)` are affected.
   
   The send path had the same accounting flaw: an application could enqueue an 
unbounded number of
   empty outgoing datagrams without ever receiving `SendDatagramError::Blocked`.
   
   The flaw was corrected in 0.11.17 by accounting for the fixed per-datagram 
overhead in both
   directions, so that every queued datagram consumes buffer space.
   
   Thanks to [@alexpyattaev](https://github.com/alexpyattaev) for reporting 
this issue.
   
   See [advisory page](https://rustsec.org/advisories/RUSTSEC-2026-0342.html) 
for additional details.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to