Skip to main content

rustls EUVDEUVD-2026-119372

| CVE-2026-123613 MEDIUM
Improper Input Validation (CWE-20)
2026-11-08 VulnCheck GHSA-rp7q-jxfg-4g6g
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain on-path or malicious-peer position
  2. Delivery
    Craft TLS 1.3 record with ServerHello + plaintext EncryptedExtensions
  3. Exploit
    rustls installs handshake keys then reads plaintext message
  4. Execution
    Message accepted across key-change boundary
  5. Impact
    Plaintext handshake data accepted without encryption

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Exploitation requires that the attacker be the connecting TLS 1.3 peer (e.g. a malicious server) or sit on-path, and that the target run rustls 0.23.13-0.23.44 processing a TLS 1.3 handshake; the attacker packs a key-changing message (ServerHello) and a following handshake message (EncryptedExtensions) into a single record so the trailing message crosses the key-change boundary in plaintext. No authentication, user interaction, or special configuration is needed (PR:N/UI:N), and default TLS 1.3 handshaking is affected. The decisive LIMITING factor is that the handshake transcript is still cryptographically authenticated, so the attacker cannot alter or complete a handshake, forge a peer, or downgrade the connection - impact is confined to rustls failing to reject plaintext handshake messages that should have been encrypted, which is why confidentiality impact is only Low and integrity/availability are None.

Impact

This is a genuine but moderate-severity TLS protocol-conformance flaw, not a top-tier emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) with only VC:L and no integrity or availability impact correctly reflects a low-consequence issue: rustls (0.23.13-0.23.44) fails to enforce RFC 8446 §5.1 record-boundary alignment in Deframer::aligned, so a peer or on-path attacker can pack a plaintext EncryptedExtensions into the same record as the ServerHello and have rustls accept it unencrypted. Crucially, the vendor advisory states the handshake transcript remains authenticated, so a network-position attacker cannot alter or complete a handshake or downgrade security - the practical effect is limited to accepting handshake messages that should have been encrypted, consistent with the VC:L / VI:N / VA:N rating. No EPSS score, KEV listing, or confirmed working exploit code is present in the input; exploitation status is therefore 'no public exploit identified at time of analysis,' though a detailed root-cause report and a directly analogous Go bug (CVE-2025-61730) exist. The vuln.today Decision label is 'this_month' (not act_now/emergency), aligning with the moderate CVSS and absence of active-exploitation signals. Bottom line: a real correctness bug worth patching on a normal cadence, not a drop-everything priority.

Exploit ScenarioDerived

A malicious or on-path TLS server sends a TLS 1.3 server flight in which a plaintext EncryptedExtensions message is packed into the same record immediately following the ServerHello. A vulnerable rustls peer installs the handshake keys after the ServerHello but still pulls the trailing plaintext EncryptedExtensions from the buffer and accepts it, rather than terminating with an 'unexpected_message' alert as RFC 8446 requires. No public working exploit code is identified, but a detailed report describing the exact protocol flow exists and the issue was confirmed by a conformance test suite.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 08, 2026

rustls 0.23.13 through 0.23.44 accepts TLS 1.3 handshake messages delivered at the wrong encryption level when a key-changing message and a following handshake message are packed into the same record. The practical effect is that a malicious TLS peer (for example a hostile server) or an on-path attacker can deliver a plaintext EncryptedExtensions alongside the ServerHello and have rustls process it instead of terminating the connection with an unexpected_message alert, which is a limited information-disclosure style failure to enforce RFC 8446 record-boundary rules. The handshake transcript remains cryptographically authenticated, so the attacker cannot alter or complete a handshake, impersonate a peer, or downgrade the connection; no public exploit code was identified at time of analysis and the CVE is not in CISA KEV. Vendor-released patch: 0.23.45, and vuln.today triage places remediation in the this_month window rather than an emergency response.

RemediationAI

Upgrade rustls to 0.23.45 or later, which is the fixed version listed in the package data (vulnerable >= 0.23.13, < 0.23.45); downstream applications should bump their rustls dependency and rebuild, and crates that pin or vendor rustls transitively need the same bump. The fixes are the rustls commit https://github.com/rustls/rustls/commit/98456aea708a7e3c6151e00ca2d4428e7a58257a with the reference implementation from Go's fix at https://github.com/golang/go/commit/5046bdf8a612b35a2c1a9e168054c1d5c65e7dd7, and the advisory https://github.com/rustls/rustls/security/advisories/GHSA-2mjx-qc3c-rqvc should be consulted for confirmation. The available sources do not document a configuration-level workaround, so no feature toggle or port restriction is presented here as an alternative to updating; priority can follow the this_month decision label, since the retained handshake authentication limits the impact to acceptance of plaintext handshake messages that should have been encrypted.

Affected VersionsENISA

rustls 0.23.13 <0.23.45

Affected Packages

cargo rustls fix: 0.23.45

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

The affected component is rustls' record deframer, specifically Deframer::aligned, which decides whether the buffered handshake bytes line up with record boundaries. Rustls' check considers the buffer aligned whenever all remaining messages are complete, so after processing a ServerHello and installing handshake keys it will still pull a complete but plaintext EncryptedExtensions out of the same record rather than rejecting it. RFC 8446 section 5.1 requires that handshake messages MUST NOT span key changes and that all messages immediately preceding a key change align with a record boundary, with a violation terminated by an unexpected_message alert; ClientHello, EndOfEarlyData, ServerHello, Finished and KeyUpdate are the messages permitted immediately before a key change and must be sent aligned. This is classified as CWE-20 (improper input validation) because the library fails to validate a structural property of untrusted protocol input rather than a cryptographic primitive. The reporter notes the issue closely mirrors Go's CVE-2025-61730, whose fix commit is cited alongside the rustls fix; other implementations tested (Botan, OpenSSL, BoringSSL, Go, wolfSSL) reject this protocol flow. Because the handshake transcript is still authenticated, the flaw does not enable handshake modification, impersonation, or downgrade, which is why the assessed vector is only AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N.

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

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Network-reachable and trivially triggered by a malicious peer (AV:N/AC:L/PR:N/UI:N); impact limited to acceptance of plaintext handshake messages (C:L), with no integrity or availability effect since the transcript stays authenticated.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Rustls from 0.23.13 before 0.23.45 accepts TLS 1.3 handshake messages at the wrong encryption level when they follow a key-changing message in the same record, because Deframer::aligned does not enforce RFC 8446 record-boundary alignment. A peer or on-path attacker can pack a plaintext EncryptedExtensions with the ServerHello, which rustls accepts unencrypted.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Medium
widely used Rust TLS library, common but not everywhere across the ecosystem
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy