HIGH 7.5

CVE-2026-55952: Erlang/OTP TLS 1.3 Session Ticket Handler Denial of Service

A vulnerability in Erlang/OTP's TLS 1.3 implementation allows an unauthenticated attacker to crash the session ticket handler by sending a specially crafted TLS handshake message. When a TLS 1.3 server has session tickets enabled, the attacker can send a ClientHello with mismatched identity and binder lists, causing the handler process to crash. This disruption persists until the ssl application is restarted, rendering TLS 1.3 session ticket functionality unavailable on the affected listener. TLS 1.2 connections remain unaffected.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
CWE-1284
Affected products
2 configuration(s)
Published / Modified
2026-07-02 / 2026-07-24

NVD description (verbatim)

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.

7 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in the tls_handshake_1_3:handle_pre_shared_key/3 function, which does not validate that the PSK identity list and binder list in the pre-shared key extension of a TLS 1.3 ClientHello have equal length. An OfferedPreSharedKeys record with mismatched list lengths is forwarded directly to tls_server_session_ticket:use/4 without validation, causing an uncaught exception that crashes the session ticket handler process. An attacker can trigger this by crafting a ClientHello with unequal identity and binder lists, resulting in a denial of service condition for TLS 1.3 session ticket operations on that listener.

Business impact

This vulnerability has direct operational impact on any service relying on Erlang/OTP for TLS 1.3 termination with session tickets enabled. A single crafted request from an unauthenticated attacker permanently disables TLS 1.3 session ticket handling on the affected listener, forcing a restart of the ssl application to restore functionality. While new TLS 1.3 handshakes can complete, they fail when the server attempts to issue a session ticket, effectively degrading TLS 1.3 usability. Organizations operating high-availability services may face extended outages if the crash occurs during business-critical periods. The attack requires no authentication and can be executed remotely, making it accessible to any network-adjacent attacker.

Affected systems

This vulnerability affects Erlang/OTP versions from 22.2 up to (but not including) OTP 29.0.3, as well as the maintenance branches OTP 28.5.0.3 and OTP 27.3.4.14. The corresponding ssl application versions impacted are 9.5 up to (but not including) 11.7.3, 11.6.0.3, and 11.2.12.10. The vulnerability is specific to TLS 1.3 deployments with session tickets enabled in either stateful or stateless mode. TLS 1.2 and earlier versions are not affected. Any application or service deployed on these Erlang/OTP versions that serves TLS 1.3 connections with session ticket support is vulnerable.

Exploitability

Exploitability is straightforward and requires no special privileges or authentication. An attacker needs only network connectivity to the target TLS 1.3 listener and the ability to craft a malformed ClientHello with unequal PSK identity and binder list lengths. The attack is a single-packet operation with deterministic results: the session ticket handler crashes immediately upon processing the crafted message. The low barrier to entry (CVSS score 7.5 with CVSS:3.1/AV:N/AC:L/PR:N/UI:N) reflects the network-accessible, unauthenticated, and low-complexity nature of the attack. However, the impact is limited to availability of session ticket functionality rather than confidentiality or integrity compromise.

Remediation

Upgrade Erlang/OTP to version 29.0.3 or later, or apply the corresponding maintenance branch updates: OTP 28.5.0.3 or OTP 27.3.4.14. These versions include fixes that validate PSK identity and binder list parity before passing the OfferedPreSharedKeys record to the session ticket handler. Organizations unable to immediately upgrade should consider temporarily disabling session tickets on TLS 1.3 listeners if operationally feasible, though this may reduce performance for clients that rely on session resumption. Verify the ssl application version in your environment and plan upgrades according to your release management process.

Patch guidance

Consult the official Erlang/OTP release notes for versions 29.0.3, 28.5.0.3, or 27.3.4.14 to verify patch availability and any breaking changes or additional improvements bundled in those releases. Test patches in a staging environment that mirrors your TLS 1.3 session ticket configuration before deploying to production. Coordinate with your operations team to schedule a maintenance window for ssl application restarts, as reloading the patched code will temporarily affect active TLS 1.3 connections. Verify that your deployment tooling correctly rolls out the new Erlang/OTP version across all affected listeners and instances.

Detection guidance

Monitor for repeated crashes of the session ticket handler process (tls_server_session_ticket process) correlated with incoming TLS 1.3 ClientHello messages. Erlang/OTP will emit error logs when the handler crashes; search logs for exit reasons related to function_clause or bad match errors in handle_pre_shared_key/3. If you have TLS handshake logging enabled, look for ClientHello messages with suspicious or malformed pre-shared key extensions that differ in identity and binder list lengths. Network-level detection is challenging without deep packet inspection of TLS records, but persistent handler restarts on a listener should trigger alerts. Consider enabling verbose ssl application logging during the remediation window to gain visibility into the attack.

Why prioritize this

While the CVSS score is 7.5 (HIGH), prioritization depends on your deployment profile. If you operate TLS 1.3 services with session tickets enabled and require continuous availability, this should be treated as a priority. The attack is trivial to execute and requires no complexity, making it a realistic threat from any network-adjacent attacker. However, the impact is limited to session ticket functionality; the confidentiality and integrity of TLS 1.3 encrypted sessions are not compromised, nor are TLS 1.2 connections affected. If your service does not rely on session ticket resumption or if your user base tolerates occasional TLS 1.3 handshake failures, you may defer this to a standard maintenance cycle. Conversely, if you serve latency-sensitive or high-throughput clients that depend on session tickets, treat this as urgent to avoid customer-facing degradation.

Risk score, explained

The CVSS 3.1 score of 7.5 (HIGH) reflects a network-accessible vulnerability with no authentication or user interaction required, yielding high exploitability. The impact is availability only (no confidentiality or integrity loss), capped at the affected listener's scope. The score does not account for business context, such as the limited attack surface (only TLS 1.3 with session tickets), the observable nature of the crash (facilitating detection), or the recovery mechanism (restarting ssl application). Organizations should supplement this technical score with risk assessment factors such as the criticality of TLS 1.3 session ticket resumption to their business, the attack surface exposed to untrusted networks, and the tolerability of brief availability disruptions.

Frequently asked questions

Does this vulnerability compromise the confidentiality of TLS 1.3 encrypted data?

No. The vulnerability does not affect the encryption or authentication of TLS 1.3 traffic. It only disrupts the session ticket handler, which is responsible for session resumption optimizations. The underlying TLS 1.3 encryption and handshake security remain intact.

Can this attack be exploited against TLS 1.2 or earlier protocol versions?

No. The vulnerability is specific to TLS 1.3 and exploits a flaw in the tls_handshake_1_3 module. TLS 1.2 connections are not affected. If your service supports both TLS 1.3 and TLS 1.2, clients can fall back to TLS 1.2 after the session ticket handler crashes.

Is there a workaround if I cannot upgrade immediately?

One option is to disable session tickets on TLS 1.3 listeners (if your configuration permits). This eliminates the attack surface but may degrade performance for clients that rely on session resumption. Another approach is to rate-limit or filter suspicious ClientHello messages at a network appliance or WAF, though this requires inspection of TLS handshake data. The recommended action is to plan and execute the upgrade to a patched version as soon as possible.

How long does the service remain disrupted after the attack?

The session ticket handler crash persists until the ssl application is restarted. This typically requires restarting the Erlang/OTP process or reloading the ssl module, which you control via your deployment and operational procedures. Once restarted, the listener resumes normal TLS 1.3 session ticket functionality. An attacker would need to send another crafted ClientHello to trigger a new crash.

This analysis is based on published CVE data and official vendor advisories. The vulnerability details, affected versions, and patch guidance are accurate as of the publication date and should be verified against the latest Erlang/OTP release notes and security bulletins before deployment. CVSS scores and severity ratings are provided by the National Vulnerability Database and vendor assessments; your organization's risk assessment should consider business context, operational constraints, and your specific deployment configuration. No working exploit code or detailed attack instructions are provided in this analysis. Organizations are encouraged to conduct their own testing in isolated environments before deploying patches to production systems. This analysis does not constitute legal advice or a guarantee of security and is provided for informational purposes only. Source: NVD (public-domain), retrieved 2026-08-11. Analysis generated by SEC.co (claude-haiku-4-5).