TLS 1.3 client ticket store crashed by NewSessionTicket with empty early_data extension in ssl
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.
CVE-2026-94200
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: cve:CVE-2026-94200
OTP
Source reference: /containers/cna/affected/0/product
- Affected versions
- Not stated in this record
- Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
OTP
Source reference: /containers/cna/affected/1/product
- Affected versions
- Not stated in this record
- Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
OTP
Source reference: /containers/cna/affected/2/product
- Affected versions
- Not stated in this record
- Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"cpes": [
"cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"
],
"vendor": "Erlang",
"modules": [
"ssl_handshake",
"tls_handshake_1_3",
"tls_client_ticket_store"
],
"product": "OTP",
"versions": [
{
"status": "affected",
"changes": [
{
"at": "27.3.4.19",
"status": "unaffected"
},
{
"at": "28.5.0.8",
"status": "unaffected"
},
{
"at": "29.1.2",
"status": "unaffected"
}
],
"version": "23.3",
"lessThan": "*",
"versionType": "otp"
}
],
"packageURL": "pkg:software-id/erlang.org/otp",
"packageName": "otp",
"programFiles": [
"lib/ssl/src/ssl_handshake.erl",
"lib/ssl/src/tls_handshake_1_3.erl",
"lib/ssl/src/tls_client_ticket_store.erl"
],
"defaultStatus": "unaffected",
"programRoutines": [
{
"name": "ssl_handshake:decode_extensions/4"
},
{
"name": "tls_handshake_1_3:decode_handshake/2"
},
{
"name": "tls_handshake_1_3:get_max_early_data/1"
},
{
"name": "tls_client_ticket_store:find_ticket/5"
},
{
"name": "tls_client_ticket_store:get_tickets/2"
}
]
},
{
"cpes": [
"cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"
],
"repo": "https://github.com/erlang/otp",
"vendor": "Erlang",
"modules": [
"ssl_handshake",
"tls_handshake_1_3",
"tls_client_ticket_store"
],
"product": "OTP",
"versions": [
{
"status": "affected",
"changes": [
{
"at": "11.2.12.14",
"status": "unaffected"
},
{
"at": "11.6.0.7",
"status": "unaffected"
},
{
"at": "11.7.8",
"status": "unaffected"
}
],
"version": "10.3",
"lessThan": "*",
"versionType": "otp"
}
],
"packageURL": "pkg:otp/ssl?repository_url=https:%2F%2Fgithub.com%2Ferlang%2Fotp&vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Ferlang%2Fotp.git",
"packageName": "ssl",
"programFiles": [
"src/ssl_handshake.erl",
"src/tls_handshake_1_3.erl",
"src/tls_client_ticket_store.erl"
],
"defaultStatus": "unaffected",
"programRoutines": [
{
"name": "ssl_handshake:decode_extensions/4"
},
{
"name": "tls_handshake_1_3:decode_handshake/2"
},
{
"name": "tls_handshake_1_3:get_max_early_data/1"
},
{
"name": "tls_client_ticket_store:find_ticket/5"
},
{
"name": "tls_client_ticket_store:get_tickets/2"
}
]
},
{
"cpes": [
"cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"
],
"repo": "https://github.com/erlang/otp",
"vendor": "Erlang",
"modules": [
"ssl_handshake",
"tls_handshake_1_3",
"tls_client_ticket_store"
],
"product": "OTP",
"versions": [
{
"status": "affected",
"changes": [
{
"at": "66febc190e6dc42a5c4aedbfe250bf9a2edc2d5e",
"status": "unaffected"
},
{
"at": "00a333bcf2800b69f540369b54167e897dae7219",
"status": "unaffected"
},
{
"at": "cd0334854bf3ef56dc16f9fb728efe88fb05c4ac",
"status": "unaffected"
}
],
"version": "0abe6f66db0d295cd06b0efab3bdb3caa2803930",
"lessThan": "*",
"versionType": "git"
}
],
"packageURL": "pkg:github/erlang/otp",
"packageName": "erlang/otp",
"programFiles": [
"lib/ssl/src/ssl_handshake.erl",
"lib/ssl/src/tls_handshake_1_3.erl",
"lib/ssl/src/tls_client_ticket_store.erl"
],
"collectionURL": "https://github.com",
"defaultStatus": "unaffected",
"programRoutines": [
{
"name": "ssl_handshake:decode_extensions/4"
},
{
"name": "tls_handshake_1_3:decode_handshake/2"
},
{
"name": "tls_handshake_1_3:get_max_early_data/1"
},
{
"name": "tls_client_ticket_store:find_ticket/5"
},
{
"name": "tls_client_ticket_store:get_tickets/2"
}
]
}
]- Related CVEs
- CVE-2026-94200
Source reference:
/cveMetadata/cveId
Publisher severity
high
Source reference: /containers/cna/metrics
- Event
- #34426 · Revision 1
- Added to Heist Feed
- Publisher date