RUSTSEC-2026-0341

Source
https://rustsec.org/advisories/RUSTSEC-2026-0341
Import Source
https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0341.json
JSON Data
https://api.osv.dev/v1/vulns/RUSTSEC-2026-0341
Aliases
  • GHSA-qfwj-vfxf-92j2
Related
Published
2026-08-17T12:00:00Z
Modified
2026-10-12T18:15:01Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
Stream reassembly memory-exhaustion guard in quinn-proto can be bypassed
Details

The fix for RUSTSEC-2026-0185 in 0.11.15 added a cap on the number of chunks buffered by the Assembler that reassembles out-of-order stream data. However, the cap was only checked inside the branch that triggers defragmentation, which only runs when the estimated over-allocation exceeds a threshold proportional to the amount of buffered data. Frames handled entirely by the unordered-read deduplication loop returned before the check ran at all.

A peer sending one small gapped STREAM frame per packet (for example, 6-byte frames separated by 1-byte gaps) keeps the per-chunk overhead below the defragmentation threshold, so the cap is never evaluated and the chunk count grows until stream-level flow control stops the peer. With the default TransportConfig (100 concurrent unidirectional streams and a 1.25 MB stream receive window), a remote, unauthenticated peer can pin roughly 3 GB of receiver memory using about 125 MB of accounted stream data. The memory is not reclaimed until the affected streams or the connection are closed.

The flaw was corrected in 0.11.17 by checking the chunk count after every insert (including in the unordered deduplication loop) and compacting the buffer once it passes a watermark above the cap. A stream is rejected once compaction can no longer bring the chunk count back under the cap.

Versions before 0.11.15 are affected by the original, broader issue described in RUSTSEC-2026-0185.

Thanks to Otto Hermann (@ojhermann) for reporting and fixing this issue.

Database specific
{
    "license":  "CC0-1.0"
}
References

Affected packages

crates.io / quinn-proto

Package

Name
quinn-proto
View open source insights on deps.dev
Purl
pkg:cargo/quinn-proto

Affected ranges

Type
SEMVER
Events
Introduced
0.11.15
Fixed
0.11.17

Ecosystem specific

{
    "affected_functions":  null,
    "affects":  {
        "arch":  [],
        "functions":  [],
        "os":  []
    }
}

Database specific

categories
[
    "denial-of-service"
]
cvss
"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
informational
null
source
"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0341.json"