Skip to main content

Erlang OTP CVE-2026-94200

| EUVDEUVD-2026-101384 HIGH
Improper Validation of Consistency within Input (CWE-1288)
2026-10-14 EEF
8.2
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Lure client to malicious TLS 1.3 server
  2. Delivery
    Server sends NewSessionTicket with 0-length early_data
  3. Exploit
    Client stores malformed ticket in node-global store
  4. Execution
    Auto-resumption triggers case_clause in get_max_early_data/1
  5. Persist
    Repeated crashes exceed rest_for_one restart intensity
  6. Impact
    ssl application down for all node connections

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Hardware validation bypass
Exploitation Conditions

Exploitation requires the victim to be a TLS 1.3 CLIENT configured with {session_tickets, auto} (automatic ticket storage and resumption) and to connect to an attacker-controlled or MITM TLS 1.3 server; the crash manifests on the NEXT automatic resumption after a malicious NewSessionTicket with a 0-length early_data extension is stored. Limiting factors: the attacker cannot reach the victim directly - the client must initiate the outbound connection, session_tickets must be set to auto (not the implicit default for all deployments), and TLS 1.3 must be in use. These conditions correspond to the AT:P (Attack Requirements: Present) metric and mean default or non-resuming TLS-client configurations are not affected. Affected: OTP 23.3 up to the fixed releases (ssl 10.3 onward).

Impact

This is a genuine availability risk but narrower than its 8.2 score suggests at first glance. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H) correctly captures the shape: network-reachable, no privileges, no user interaction, but with AT:P (Attack Requirements: Present) reflecting that exploitation is NOT unconditional - it depends on the client being configured with {session_tickets, auto} and performing automatic resumption, and on the victim initiating a connection to an attacker-controlled TLS 1.3 server. Impact is confined to availability (VA:H / A:H); there is no confidentiality or integrity loss. The SSVC-style reading is: technical impact is total for the ssl application (it can take down TLS for ALL connections on the node via the rest_for_one supervisor cascade), but exploitation is server-triggered rather than attacker-reachable against an exposed listener, which limits automatability and mass scanning. No EPSS score, KEV listing, or public POC was provided in the input, so there is no signal of active or at-scale exploitation; this reads as a credible, patch-worthy DoS rather than an emergency. Signals are internally consistent - there is no network-vs-local or auth contradiction to flag.

Exploit ScenarioDerived

An attacker stands up (or hijacks via MITM/DNS) a malicious TLS 1.3 server and induces a vulnerable Erlang/OTP client - one configured with {session_tickets, auto} - to connect to it. The server returns a NewSessionTicket carrying a 0-length early_data extension; the client stores the malformed ticket in the node-global tls_client_ticket_store, and the next automatic resumption triggers a case_clause crash in tls_handshake_1_3:get_max_early_data/1. Repeating this exhausts the ssl supervisors' restart intensity and takes down the ssl application node-wide; no public exploit code was identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 14, 2026

Denial of service in the Erlang OTP ssl application allows a malicious or man-in-the-middle TLS 1.3 server to crash the node-global session-ticket store on a connecting client, and repeated crashes can exhaust the ssl supervisor restart intensity and take down TLS for every connection on that node. The victim must be a TLS 1.3 client running OTP 23.3 through the fixed releases with session_tickets set to auto (automatic ticket storage and resumption); the crash does not occur when the bogus ticket is received but on the next automatic resumption attempt, and it requires the client to initiate the outbound connection, which is reflected in the assessed AT:P attack-requirement metric and a CVSS 3.1 base of 5.9 (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H) despite the vendor's CVSS 4.0 score of 8.2. No public exploit code has been identified at time of analysis and there is no CISA KEV listing, but vendor patches and upstream commits are available. Reported by the Erlang Ecosystem Foundation (EEF) and tracked as EUVD-2026-101384.

RemediationAI

Vendor-released patch: upgrade to OTP 27.3.4.19 (ssl 11.2.12.14), OTP 28.5.0.8 (ssl 11.6.0.7) or OTP 29.1.2 (ssl 11.7.8) on the appropriate release branch; OTP versions are ordered as described at https://www.erlang.org/doc/system/versions.html#order-of-versions, so confirm you land on or above the fix for your branch. Patches are visible in the upstream commits linked from the advisory (https://github.com/erlang/otp/security/advisories/GHSA-m5mh-q53w-67jq and the patch commits 66febc190e6dc42a5c4aedbfe250bf9a2edc2d5e, 00a333bcf2800b69f540369b54167e897dae7219, cd0334854bf3ef56dc16f9fb728efe88fb05c4ac, with 0abe6f66db0d295cd06b0efab3bdb3caa2803930 as the reference boundary commit). If immediate upgrade is not possible, the most direct compensating control is to stop using {session_tickets, auto} on TLS 1.3 clients - switch to {session_tickets, manual} or disable client session tickets entirely, which prevents the malformed ticket from ever entering tls_client_ticket_store; the trade-off is loss of automatic session resumption, adding a full handshake of latency and CPU per reconnect, and manual mode shifts ticket lifecycle responsibility onto application code. A narrower alternative is to avoid connecting to untrusted or intermediary TLS 1.3 endpoints from affected nodes, since exploitation requires the client to initiate a connection to an attacker-controlled or MITM server, but this is impractical for internet-facing clients and should be treated as a temporary risk reduction rather than a fix. Raising the ssl supervisor restart intensity only masks the symptom and is not recommended, as the underlying case_clause crash in tls_handshake_1_3:get_max_early_data/1 remains reachable and ticket-store state stays corrupted.

Affected VersionsENISA

otp 10.3 <*
otp 23.3 <*
otp 0abe6f66db0d295cd06b0efab3bdb3caa2803930 <*

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a CWE-1288 (Improper Validation of Consistency within Input) defect in Erlang/OTP's TLS 1.3 implementation, affecting the tls_handshake_1_3, ssl_handshake and tls_client_ticket_store modules of the ssl application (CPE cpe:2.3:a:erlang:otp, three affected range entries). During a TLS 1.3 handshake the client decodes the extensions carried in a server's NewSessionTicket message using the same code path it uses for EncryptedExtensions, so an extension that is structurally valid in only one of those two messages is accepted in the other. Specifically, a 0-length early_data extension - a form permitted only in ClientHello and EncryptedExtensions - is accepted inside NewSessionTicket. When the client is configured with {session_tickets, auto}, that malformed ticket is committed to the node-global tls_client_ticket_store. The defect then detonates on the next automatic resumption: tls_handshake_1_3:get_max_early_data/1 calls into a case expression with no matching clause for the stored value, raising a case_clause error that crashes the store process. Because the ssl supervisors use the rest_for_one strategy, repeated crashes accumulate against the restart intensity limit and eventually terminate the ssl application for the whole node, providing the availability (A:H) impact with no confidentiality or integrity effect. The upstream fix series (commits 0abe6f66db0d295cd06b0efab3bdb3caa2803930, 66febc190e6dc42a5c4aedbfe250bf9a2edc2d5e, 00a333bcf2800b69f540369b54167e897dae7219, cd0334854bf3ef56dc16f9fb728efe88fb05c4ac) reworks ssl option handling - introducing client_early_data, server_early_data and max_early_data option types plus role-aware validation - alongside the extension-decoding correction.

Know when Erlang gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 8.2 HIGH
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
vuln.today AI 5.9 MEDIUM

Server-triggered DoS needing client-side session_tickets:auto plus a resumption, so AC:H captures the non-default precondition; no attacker privileges (PR:N), availability-only impact (A:H), no scope change.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Improper Validation of Consistency within Input vulnerability in Erlang OTP ssl (tls_handshake_1_3, ssl_handshake and tls_client_ticket_store modules) allows a malicious TLS 1.3 server to cause a denial of service of the ssl application on the client node.

The TLS 1.3 client decodes the extensions of a NewSessionTicket message as if they came from EncryptedExtensions. It therefore accepts a 0-length early_data extension, a form that is only valid in ClientHello and EncryptedExtensions. With {session_tickets, auto}, the client stores the ticket in the node-global tls_client_ticket_store. On the next automatic resumption, tls_handshake_1_3:get_max_early_data/1 crashes the store with a case_clause. Repeated crashes can exceed the restart intensity of the ssl supervisors, which use the rest_for_one strategy, and take down ssl for all connections on the node.

This issue affects OTP from OTP 23.3 before OTP 27.3.4.19, OTP 28.5.0.8, and OTP 29.1.2, corresponding to ssl from 10.3 before 11.2.12.14, 11.6.0.7, and 11.7.8.

Executive ViewAI

Why It Matters

The Erlang OTP ssl application contains a high-severity denial-of-service vulnerability that can crash the node-global session-ticket store on TLS 1.3 clients and, with repeated crashes, disable TLS for every connection on an affected node. Organizations using affected OTP versions (23.3 and later) as TLS 1.3 clients with automatic session tickets are exposed to service outages, especially where outbound TLS connections are business-critical; no public exploit has been identified at time of analysis, and vendor patches are available. Leadership should prioritize patching because a successful attack can interrupt secure communications and disrupt dependent applications without requiring authentication.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 61% exploitable
Prevalence
Medium
Erlang/OTP widely used in telecom/messaging backends, but vulnerable TLS-client config is not default
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Erlang

View all
CVE-2025-32433 CRITICAL POC
10.0 Apr 16

Erlang/OTP SSH server allows unauthenticated remote code execution by exploiting a flaw in SSH protocol message handling

CVE-2017-1000385 MEDIUM POC
5.9 Dec 12

The Erlang otp TLS server answers with different TLS alerts to different error types in the RSA PKCS #1 1.5 padding. Rat

CVE-2023-48795 MEDIUM POC
5.9 Dec 18

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot

CVE-2020-13802 CRITICAL POC
9.8 Sep 02

Rebar3 versions 3.0.0-beta.3 to 3.13.2 are vulnerable to OS command injection via URL parameter of dependency specificat

CVE-2014-1693 HIGH POC
7.5 Dec 08

Multiple CRLF injection vulnerabilities in the FTP module in Erlang/OTP R15B03 allow context-dependent attackers to inje

CVE-2021-29221 HIGH POC
7.0 Apr 09

A local privilege escalation vulnerability was discovered in Erlang/OTP prior to version 23.2.3. Rated high severity (CV

CVE-2016-10253 CRITICAL
9.8 Mar 18

An issue was discovered in Erlang/OTP 18.x. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitab

CVE-2022-37026 CRITICAL
9.8 Sep 21

In Erlang/OTP before 23.3.4.15, 24.x before 24.3.4.2, and 25.x before 25.0.2, there is a Client Authentication Bypass in

CVE-2026-89422 CRITICAL
9.3 Sep 22

Erlang/OTP's ssl application in affected releases (OTP 22.2 through the fixed 27.3.4.18, 28.5.0.7 and 29.1.1) will compl

CVE-2026-67404 CRITICAL
9.2 Sep 23

RabbitMQ brokers that use the OAuth2 plugin can silently fall back to disabled TLS certificate verification when no CA b

CVE-2026-67231 CRITICAL
9.1 Sep 23

TLS client-authentication bypass in the RabbitMQ trust-store plugin lets a remote unauthenticated attacker whose forged

CVE-2026-55953 CRITICAL
9.1 Jul 27

An on-path attacker can force an Erlang/OTP TLS 1.2 or DTLS client to accept an anonymous cipher suite not offered by th

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy