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
  • unaffected at 11.7.3
  • unaffected at 11.6.0.3
  • unaffected at 11.2.12.10

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

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