CVE-2026-55952
TLS 1.3 server denial of service via malformed ClientHello pre-shared key extension
Vulnerability description
The Erlang/OTP ssl application does not validate that the PSK identity list and binder list carried in a TLS 1.3 ClientHello pre-shared key extension have equal length before passing them to the session ticket handler. In tls_handshake_1_3:handle_pre_shared_key/3, an OfferedPreSharedKeys record with a mismatched number of identities and binders is forwarded directly to tls_server_session_ticket:use/4, which crashes the session ticket handler process.
An unauthenticated remote attacker can send a single crafted ClientHello to a TLS 1.3 server with session tickets enabled (stateful or stateless mode) and permanently disrupt session ticket handling on that listener. New TLS 1.3 handshakes complete but subsequently crash when the server attempts to issue a session ticket, effectively making TLS 1.3 unusable on the affected listener until the ssl application is restarted. TLS 1.2 connections are not affected.
This issue affects OTP from 22.2 before 29.0.3, 28.5.0.3 and 27.3.4.14 corresponding to ssl from 9.5 before 11.7.3, 11.6.0.3 and 11.2.12.10.
Affected
pkg:otp/ssl
| Module | Source File | Routine |
|---|---|---|
tls_handshake_1_3
|
src/tls_handshake_1_3.erl
|
tls_handshake_1_3:handle_pre_shared_key/3
|
| Status | Type | Version | Changes / Fixed in |
|---|---|---|---|
| affected | otp ⓘ | 9.5
|
|
pkg:github/erlang/otp
| Module | Source File | Routine |
|---|---|---|
tls_handshake_1_3
|
lib/ssl/src/tls_handshake_1_3.erl
|
tls_handshake_1_3:handle_pre_shared_key/3
|
| Status | Type | Version | Changes / Fixed in |
|---|---|---|---|
| affected | otp ⓘ | 22.2
|
|
| affected | git ⓘ | 339a279f02
|
|
Configurations
The vulnerability only affects TLS 1.3 servers that have session tickets enabled (either stateful or stateless mode). TLS 1.2 connections and clients are not affected.
Workarounds
- Disable session tickets on TLS 1.3 servers by setting session_tickets to disabled in the server's ssl options.
- Restrict the server to TLS 1.2 by setting versions to ['tlsv1.2'] in the server's ssl options.
References
- https://github.com/erlang/otp/security/advisories/GHSA-8c57-44c9-pc59 vendor-advisory related
- https://osv.dev/vulnerability/EEF-CVE-2026-55952 related
- https://github.com/erlang/otp/commit/e77823e6d980b2ec0b4fe4ea3f2d098ca239e3ce patch
- https://github.com/erlang/otp/commit/2c3e599797644310e5d4aa39c7193420e59dadff patch
- https://github.com/erlang/otp/commit/9b5437c72fa3403a75c1aba28e5c532bc191c662 patch
Credits
- Finder: Lukas Backström
- Remediation developer: Ingela Anderton Andin
- Remediation reviewer: Dan Gudmundsson
- Remediation reviewer: Jakub Witczak
CVE record as JSON:
GET /cves/CVE-2026-55952.json
OSV record as JSON:
GET /osv/EEF-CVE-2026-55952.json