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 17.0 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 5.3.4 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 17.0, corresponding to ssl before 5.3.4, is affected is unknown.
Security readout for executives and security teams
Plain-English summary
Affected Erlang/OTP clients can be tricked by an attacker positioned on the network into accepting an unauthenticated encrypted connection. The application may believe it securely reached the intended server while the attacker reads or changes traffic. TLS 1.3 is unaffected, but vulnerable TLS 1.2-or-earlier and DTLS client connections require prompt remediation.
Executive priority
Prioritize emergency assessment and rapid patching for internet-facing, cloud, partner-network, or otherwise untrusted-path client traffic. The potential impact is silent interception and modification of sensitive communications while applications report a successful secure connection. Systems restricted to TLS 1.3 are not affected by this issue.
Technical view
The TLS 1.2-or-earlier and DTLS client accepts a ServerHello cipher suite without confirming it appeared in ClientHello. An on-path attacker can select an anonymous DH or ECDH suite, eliminating certificate and hostname validation despite verify_peer and cacerts settings. Fixed releases add the required negotiation check; the TLS 1.3 path already performs it.
Likely exposure
Exposure exists where affected Erlang/OTP ssl versions initiate TLS 1.2-or-earlier or DTLS connections across attacker-accessible networks. Affected ranges are OTP 17.0–27.3.4.14, 28.0–28.5.0.3, and 29.0–29.0.3. Status before OTP 17.0 is unknown. TLS 1.3 client connections are unaffected.
Exploitation context
Exploitation requires an on-path position between the Erlang client and intended server, but needs no account or user interaction. Successful exploitation compromises confidentiality and integrity of subsequent application traffic. The supplied sources and KEV status do not establish active exploitation in the wild.
Researcher notes
CWE-757 applies because the client accepts an unoffered cipher suite. The vulnerable TLS handshake path installs the server-selected suite without membership validation, permitting anonymous key exchange and bypassing certificate-based authentication. CVSS 4.0 is 9.1. The source bundle identifies three patch commits but provides no evidence of public exploitation.
Mitigation direction
Upgrade OTP 27 deployments to 27.3.4.15 or later.
Upgrade OTP 28 deployments to 28.5.0.4 or later.
Upgrade OTP 29 deployments to 29.0.4 or later.
Prefer TLS 1.3 exclusively where application and server compatibility permits.
Consult Erlang guidance for unsupported or pre-OTP 17 installations.
Validation and detection
Inventory Erlang/OTP and ssl library versions in applications, containers, appliances, and embedded deployments.
Identify outbound TLS 1.2-or-earlier and DTLS client connections using Erlang ssl.
Confirm production runtimes resolve to a fixed release, not merely updated build manifests.
Regression-test certificate and hostname validation after upgrading.
Treat pre-OTP 17 exposure as unresolved until Erlang provides authoritative guidance.
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.