GitHub Advisoryadvisory · crates.io
GHSA-vxx9-2994-q338 Yamux vulnerable to remote Panic via malformed Data frame with SYN set and len = 262145
HIGH
Official page ↗
- Aliases
- CVE-2026-32314
- Ecosystem
- crates.io
- Packages
- yamux
- Severity
- High
- CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
- Weaknesses
- CWE-248, CWE-617
- Reviewed
- 2026-03-13
Affected packages
• crates.io yamux: < 0.13.10 → fixed in 0.13.10
Description
Summary
The Rust implementation of Yamux can panic when processing a crafted inbound Data frame that sets SYN and uses a body length greater than DEFAULT_CREDIT (e.g. 262145).
On the first packet of a new inbound stream, stream state is created and a receiver is queued before oversized-body validation completes. When validation fails, the temporary stream is dropped and cleanup may call remove(...).expect("stream not found"), triggering a panic in the connection state machine.
This is remotely reachable over a normal Yamux session and does not require authentication. kind of vulnerability is it? Who is
Attack Scenario
An attacker that can establish a Yamux session with a target node can crash the target by sending a single validly encoded Yamux Data|SYN frame with an oversized body:
1. Establish a standard authenticated transport session that negotiates Yamux.
2. Send one Yamux frame with:
• Tag = Data
• Flags = SYN
• StreamId = 1 (or any new inbound stream id)
• Length = DEFAULT_CREDIT + 1 (e.g. 262145)
• Body of matching size
This can trigger a panic (stream not found) and terminate the process, depending on host application panic policy.
Patches
Users should upgrade to `yamux` `v0.13.10`
This vulnerability was originally submitted by @revofusion to the Ethereum Foundation bug bounty program
Related
Alias · CVE (1)
- CVE-2026-32314 Yamux is a stream multiplexer over reliable, ordered connections such as TCP/IP. vulnerability