Am I affected?

This record states its affected versions in a form that can't be compared automatically.

9.5 and up affected
11.7.3 not affected
11.6.0.3 not affected
11.2.12.10 not affected
every other version: unaffected

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 OTP 22.2 before OTP 29.0.3, OTP 28.5.0.3 and OTP 27.3.4.14, corresponding to ssl from 9.5 before 11.7.3, 11.6.0.3 and 11.2.12.10.

Weaknesses & attack patterns

Weakness

CWE-1284 · Improper Validation of Specified Quantity in Input in catalog → MITRE ↗

Attack patterns

CAPEC-153 · Input Data Manipulation MITRE ↗

Affected — Erlang / ssl Repository ↗

9.5 and up affected
11.7.3 not affected
11.6.0.3 not affected
11.2.12.10 not affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
modules · source files · routines
modules tls_handshake_1_3
source files src/tls_handshake_1_3.erl
routines tls_handshake_1_3:handle_pre_shared_key/3

Affected — GitHub / erlang/otp Repository ↗

22.2 and up affected
29.0.3 not affected
28.5.0.3 not affected
27.3.4.14 not affected
339a279 and up affected
e77823e not affected
2c3e599 not affected
9b5437c not affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
modules · source files · routines
modules tls_handshake_1_3
source files lib/ssl/src/tls_handshake_1_3.erl
routines tls_handshake_1_3:handle_pre_shared_key/3

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.

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.

References

Credits

Lukas Backström Finder
Ingela Anderton Andin Remediation developer
Dan Gudmundsson Remediation reviewer
Jakub Witczak Remediation reviewer

CVSS breakdown

CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
« All CVEs