quinn-proto: remote memory exhaustion

This commit is contained in:
Dirkjan Ochtman
2026-06-22 11:54:21 +02:00
parent e3c23aa97a
commit 76d397ed25

View File

@@ -0,0 +1,23 @@
```toml
[advisory]
id = "RUSTSEC-0000-0000"
package = "quinn-proto"
date = "2026-06-22"
url = "https://github.com/quinn-rs/quinn/pull/2694"
categories = ["denial-of-service"]
cvss = "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
keywords = ["oom"]
aliases = ["GHSA-4w2j-m93h-cj5j"]
[versions]
patched = [">= 0.11.15"]
```
# Remote memory exhaustion in quinn-proto from unbounded out-of-order stream reassembly
The `Assembler` component that assembles unordered stream fragments into consecutive chunks of the
stream incurs some overhead for non-contiguous fragments. Readers that read from a RecvStream in
order (through an `AsyncRead` impl for example) will be sensitive to peers that send fragments
while leaving out early parts of the stream, and in particular, fragments with many gaps (because
these cannot be defragmented). In such a scenario, the receiving connection suffers from high
buffer overhead, enabling memory exhaustion.