CVE-2026-55953: TLS 1.2 and DTLS client accepts unoffered anonymous cipher suite, bypassing server authentication
The Erlang/OTP ssl TLS 1.2 (and earlier) and DTLS client does not verify that the cipher suite selected by the server in ServerHello was among the suites offered by the client in ClientHello. The client-side tls_handshake:hello/5 handler validates the negotiated protocol version and the downgrade sentinel but hands the server-chosen suite directly to ssl_handshake:handle_server_hello_extensions/9, which installs it without a membership check. The TLS 1.3 client path performs this check (per RFC 8446), so it is not affected.
An on-path attacker between the client and the intended server can respond with a ServerHello selecting an anonymous key exchange suite such as TLS_DH_anon_* or TLS_ECDH_anon_* that the client never offered. Anonymous suites do not require the server to present a certificate, so the entire verify_peer and cacerts configuration is bypassed: the attacker completes the handshake with its own ephemeral parameters, no certificate is validated, no hostname is checked, and ssl:connect returns {ok, Socket}. All subsequent application traffic is readable and modifiable by the attacker.
This issue affects OTP from OTP R13B03 before OTP 27.3.4.15, from OTP 28.0 before OTP 28.5.0.4, and from OTP 29.0 before OTP 29.0.4, corresponding to ssl from 3.10.7 before 11.2.12.11, from 11.3 before 11.6.0.4, and from 11.7 before 11.7.4. Whether OTP before OTP R13B03, corresponding to ssl before 3.10.7, is affected is unknown.
Security readout for executives and security teams
Plain-English summary
Affected Erlang/OTP clients can be tricked by an attacker controlling the network path into creating an encrypted connection without authenticating the server. The attacker could then read or alter application traffic. TLS 1.3 clients are not affected, but vulnerable TLS 1.2, earlier TLS, and DTLS clients require prompt attention.
Executive priority
Treat as an urgent remediation for affected clients handling sensitive or high-value traffic, especially across networks where interception is plausible. The flaw defeats configured certificate authorities, peer verification, and hostname checking without alerting the application. Rapidly inventory TLS client usage, upgrade exposed systems, and confirm the deployed runtime—not merely application dependencies—contains the fix.
Technical view
The TLS 1.2-and-earlier and DTLS client accepts a ServerHello cipher suite without confirming it appeared in ClientHello. An on-path attacker can select an unoffered anonymous DH or ECDH suite, eliminating certificate and hostname checks while ssl:connect reports success. Fixed releases add the required membership validation. The TLS 1.3 path already performs it.
Likely exposure
Exposure exists where Erlang/OTP ssl operates as a TLS 1.2-or-earlier or DTLS client on an affected release. Risk is greatest across internet, shared, wireless, or otherwise untrusted network paths. Exploitation requires an on-path position. TLS 1.3-only client connections are unaffected. Status before OTP R13B03 is unknown.
Exploitation context
The source bundle describes a practical man-in-the-middle condition requiring network-path control, but provides no evidence of active exploitation. The CVE is not listed as KEV in the supplied data. No credentials or user interaction are required once the attacker is on path, and successful exploitation compromises traffic confidentiality and integrity.
Researcher notes
This is classified as CWE-757. The vulnerable client path installs the server-selected suite without checking the original offer; TLS 1.3 performs that check. Anonymous DH or ECDH selection removes certificate-based authentication. Three referenced commits provide patches. The supplied sources do not establish public proof-of-concept availability, exploitation in the wild, or impact before OTP R13B03.
Mitigation direction
Upgrade to OTP 27.3.4.15, 28.5.0.4, 29.0.4, or an appropriate later supported release.
Prioritize clients using TLS 1.2, earlier TLS, or DTLS across untrusted network paths.
Where operationally safe, require TLS 1.3 until upgrades finish; this does not address DTLS connections.
Review the vendor advisory and referenced patches before applying branch-specific backports.
Move releases before OTP R13B03 to a fixed supported release because their affected status is unknown.
Validation and detection
Inventory deployed Erlang/OTP and ssl versions, including embedded runtimes and application containers.
Identify applications making outbound TLS 1.2, earlier TLS, or DTLS connections through the ssl client.
Confirm installed versions meet the documented fixed release thresholds after remediation.
Verify clients reject server-selected cipher suites absent from their offered list using authorized non-production testing.
Flag releases before OTP R13B03 for manual review because the available evidence does not establish their status.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-757: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
8Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-757 · source CWE mapping
Selection of Less-Secure Algorithm During Negotiation ('Algorithm Downgrade')
Selection of Less-Secure Algorithm During Negotiation ('Algorithm Downgrade') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.