rustls: ECH rejection can expose buffered application data to authenticated outer server before `ech_required` alert
Affects rustlsSource GCVE Database
CVSS 2.3 Low : upgrade to 0.23.46 when convenient.
Data as of 27 Oct 2026, 17:42 UTC
- Patch
- Available – fixed in 0.23.46, 0.24.0-dev.2
CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:NWhat to do
Upgrade rustls to 0.23.46; rustls to 0.24.0-dev.2.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| crates.iorustls | Affected
| Fixed in
|
| crates.iorustls | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
A fix is available in rustls versions 0.23.46 and 0.24.0-dev.2. Users should upgrade to these or later versions to resolve the issue. The vulnerability affects only clients using EchMode::Enable that send application data before handshake completion and connect to servers rejecting ECH. No additional mitigation is required beyond applying the official patch.
Description
A vulnerability in rustls versions 0.23.44, 0.23.45, and certain 0.24.0-dev releases causes buffered application data to be sent to the server before the client sends the mandatory 'ech_required' alert when Encrypted Client Hello (ECH) is rejected. This violates RFC 9849 requirements that no application data be sent before the alert. The issue affects clients using EchMode::Enable that send application data before handshake completion and connect to servers rejecting their ECH config. The flaw was fixed in rustls 0.23.46 and 0.24.0-dev.2.
References
- github.com/rustls/rustls/security/advisories/GHSA-vp88-798v-h67f (opens in a new tab)
- github.com/rustls/rustls/pull/3300 (opens in a new tab)
- github.com/rustls/rustls/pull/3354 (opens in a new tab)
- github.com/rustls/rustls/commit/2bd5c0cefabb2c5fd4100383a736d59f9671b9b4 (opens in a new tab)
- github.com/rustls/rustls/commit/4de14a508fbfa2273203ec17d9dfdd0fbd29e8d1 (opens in a new tab)
- github.com/rustls/rustls/commit/7dcbe4c1ae12185237d22e9197583329630a2014 (opens in a new tab)
- github.com/rustls/rustls (opens in a new tab)
- github.com/rustls/rustls/releases/tag/v/0.23.46 (opens in a new tab)
- rustsec.org/advisories/RUSTSEC-2026-0347.html (opens in a new tab)