Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPosition to answer target name's connection
-
DeliverySend unauthenticated ServerHello selecting X25519
-
ExploitPoison per-name key-share prediction record
-
ExecutionClient later sends only classical share
-
PersistServer accepts classical group
-
ImpactPost-quantum confidentiality lost (harvest-now-decrypt-later)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Algorithm negotiation safety
|
| Exploitation Conditions | Exploitation requires that the rustls client store a per-server-name key-exchange prediction record - the advisory states that with resumption disabled nothing is stored and the attack does not trigger. The attacker must be able to answer one connection attempt for the exact target server name with a ServerHello selecting X25519 and close it (no certificate or completed handshake needed); the record is per-name, so a different server name is unaffected. The downgrade only completes if the GENUINE server then accepts the lone classical X25519 share instead of sending a HelloRetryRequest for its preferred hybrid group - the advisory calls this a server policy decision, and servers that issue a HelloRetryRequest stay hybrid and are not affected. Both peers must otherwise support the hybrid X25519MLKEM768 group. The high attack complexity and attack requirement (AC:H/AT:P) reflect these preconditions; the trigger is a protocol-state poisoning via an unauthenticated message as described, not a memory-corruption or timing bug. |
| Impact | This is a genuine but low-urgency issue, correctly deprioritized. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N/VC:L) scores 6.3 (Medium): network-reachable and unauthenticated, but with high attack complexity, a specific attack requirement (AT:P), and only limited confidentiality impact. Those tempering metrics are consistent with the advisory: exploitation does not compromise keys, bypass authentication, or raise an error - it silently strips post-quantum protection so recorded traffic is exposed only to a FUTURE quantum adversary (harvest-now-decrypt-later). No CISA KEV listing and no EPSS score are provided in the input, and no PoC or exploit code is referenced (only the GHSA advisory and patch commits), so there is no public exploit identified at time of analysis. The vuln.today decision label is 'this_month', not act_now/emergency, which aligns with the signals. Critically, the advisory itself states the real impact is 'largely down to a server policy decision' - a server that sends a HelloRetryRequest for its preferred hybrid group is not affected - so the realized risk is narrower than the network-vector metric alone suggests. No conflicting signals: all sources agree this is a downgrade/forward-secrecy-against-quantum concern, not an immediate confidentiality break. |
| Exploit ScenarioDerived | An attacker positioned to answer a connection attempt for a target server name responds to one rustls client connection with a ServerHello selecting classical X25519, then closes. The poisoned per-name key-share prediction record causes that client's subsequent ClientHellos for the same name to carry only a classical X25519 share; if the genuine server accepts it instead of requesting the hybrid group, the handshake completes with classical-only key exchange and post-quantum confidentiality is silently lost for recorded sessions. No public exploit code is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 08, 2026
rustls clients before 0.23.46 can be steered into classical-only TLS 1.3 key exchange by an unauthenticated network attacker who answers a single connection attempt for a target name with a ServerHello selecting X25519, poisoning the client's per-server-name key-exchange group record so later ClientHellos for that name carry only a classical share even though supported_groups still lists X25519MLKEM768 first. The downgrade only completes if the genuine server accepts that lone X25519 share instead of issuing a HelloRetryRequest for its preferred hybrid group; when it does, the handshake finishes without error and post-quantum confidentiality is silently lost for those sessions, with no key compromise and no authentication bypass. No public exploit has been identified at time of analysis, and clients configured with resumption disabled store nothing and do not trigger the issue.
RemediationAI
Upgrade to rustls 0.23.46 on the stable branch, or to 0.24.0-dev.2 if tracking the 0.24.0 development line; the fixes are carried in https://github.com/rustls/rustls/pull/3355 and commit 8fa0dc5d517a63411ad1e528249bdf5b098ae5e4, and the vendor advisory is at https://github.com/rustls/rustls/security/advisories/GHSA-w44r-93j7-qv28. Where an upgrade cannot be applied immediately, the advisory notes that a client configuration with resumption disabled stores nothing and therefore does not trigger the downgrade, at the cost of losing session resumption performance; a different server name is unaffected because the record is per name. Server operators can also keep connections hybrid by issuing a HelloRetryRequest for their preferred X25519MLKEM768 group rather than accepting a lone classical X25519 share, which preserves post-quantum confidentiality at the cost of one additional round trip.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in cargo
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
rustls 0.23.x predicts which key-exchange group a server will want and pre-generates a key_share for it, caching that decision per server name. That record is written when the ServerHello is processed, before the server is authenticated, so an attacker who parses the ClientHello, replies with a ServerHello selecting X25519 and closes the connection permanently biases the client's future ClientHellos for that name toward a single classical share, while supported_groups continues to advertise X25519MLKEM768 first. TLS 1.3 transcript binding prevents an on-path attacker from editing a single ClientHello in flight but does not stop this pre-connection steering of the client's prediction state, because the state originates from an unauthenticated message. The flaw is classified CWE-757 (Selection of a Less-Secure Algorithm During Negotiation) and is exactly the scenario analyzed in draft-ietf-tls-key-share-prediction; the real outcome depends on server policy, since a server that sends a HelloRetryRequest for its preferred hybrid group keeps the connection hybrid at the cost of an extra round trip, whereas a server that accepts the available classical share completes a hybrid-capable handshake without post-quantum protection. The CVSS 4.0 AC:H/AT:P metrics reflect the requirement that the attacker reach the client for the exact target name and that the genuine server then decline to request a retry, not any memory-corruption or timing condition.
Know when Rustls gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable and unauthenticated (AV:N/PR:N), but AC:H because it needs client-side storage enabled, attacker answering the connection, and a permissive server policy; only future-quantum confidentiality is lost (C:L), no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
rustls before 0.23.46 contains a key exchange downgrade vulnerability that allows network attackers to poison the per-server-name key-exchange group record via an unauthenticated ServerHello. Attackers can answer one connection with a ServerHello selecting X25519, causing later ClientHellos to send only classical shares and lose post-quantum confidentiality.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Related Vulnerabilities in Rustls Information Disclosure and Protocol Flaws
View all 5A flaw was found in Rustls 0.23.13 and related APIs. Rated high severity (CVSS 7.5), this vulnerability is remotely expl
rustls-mio/examples/tlsserver.rs in the rustls crate before 0.16.0 for Rust allows attackers to cause a denial of servic
EUVD-2026-119370
GHSA-jh53-vxwq-v4wp
NVD
CVE.org
EPSS
Exploit-DB