Description
Improper Certificate Validation vulnerability in the ssl application in Erlang/OTP allows a client that holds a certificate trusted by one SNI virtual host to authenticate to a second SNI virtual host on the same listener by resuming its TLS 1.2 session there.

A server that serves several SNI names from one listen socket through sni_fun or sni_hosts keeps one pre-TLS 1.3 session cache per listener and does not bind a cached session to the SNI name or client trust policy that established it. When an SNI option set switches to verify_peer without naming reuse_sessions, ssl_config:update_options/3 inherits the base listener's reuse_sessions value of true, so the default that disables reuse for client-authenticating servers does not apply. On an abbreviated handshake ssl_session:is_resumable/4 checks only that the cached session uses one of the current server certificates and carries some peer certificate, and never revalidates that certificate against the CA selected for the requested name. The names must share a server certificate, which is common with wildcard or multi-SAN certificates. TLS 1.3 does not use this cache and is not affected.

This issue affects OTP from OTP 18.0 before OTP 27.3.4.19, OTP 28.5.0.8, and OTP 29.1.2, corresponding to ssl from 7.0 before 11.2.12.14, 11.6.0.7, and 11.7.8.
Published: 2026-10-14
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized Authentication
Action: Patch Now
AI Analysis

Impact

The vulnerability allows a client that holds a certificate trusted by one SNI virtual host to authenticate to a second SNI virtual host on the same listener by resuming a TLS 1.2 session. In effect, the ssl application in Erlang/OTP does not bind cached sessions to the SNI name or the CA policy that established them, enabling cross‑name session resumption. This weakness is an instance of improper certificate validation (CWE‑295). The attacker can masquerade as a valid client of a different service, potentially gaining unauthorized access to resources protected by the second service's client‑certificate authentication.

Affected Systems

The affected product is Erlang:OTP. All OTP releases prior to 27.3.4.19, as well as the specific releases 28.5.0.8 and 29.1.2, contain the vulnerability. The ssl libraries affected are versions 7.0 up to 11.2.12.14, 11.6.0.7, and 11.7.8. Users running these releases on a listener that serves multiple SNI names without separate session caches are at risk.

Risk and Exploitability

The CVSS score of 6.3 indicates a moderate impact. The EPSS score is < 1%, meaning the probability of exploitation is very low. The vulnerability is not listed in the CISA KEV catalog. The attack path requires a client with a certificate trusted by one SNI host to perform a TLS 1.2 handshake to the same listener for a different SNI name. The session‑resume check fails to re‑validate the peer certificate against the CA selected for the requested name, so an attacker can potentially gain authentication privileges to other virtual hosts over a single TLS listener.

Generated by OpenCVE AI on October 15, 2026 at 15:34 UTC.

Remediation

Vendor Workaround

* Set {reuse_sessions, false} in each SNI service's option set, or in the base listener options. The reporter's proof of concept confirmed that this blocks the cross-name resumption. * Serve distinct SNI trust domains on separate listen sockets, which gives each its own session cache. * Restrict the listener to TLS 1.3 with {versions, ['tlsv1.3']}. TLS 1.3 does not use the session-ID cache.


OpenCVE Recommended Actions

  • Upgrade Erlang/OTP to 27.3.4.19 or later (including OTP 28.5.0.8 and OTP 29.1.2).
  • Set {reuse_sessions,false} in each SNI service’s option set or in the base listener options to block cross‑name session resumption.
  • Serve distinct SNI trust domains on separate listen sockets so each domain has its own session cache.
  • Configure the listener to restrict the protocol to TLS 1.3 with {versions, ['tlsv1.3']}, which does not use the session‑ID cache.

Generated by OpenCVE AI on October 15, 2026 at 15:34 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 23 Oct 2026 00:45:00 +0000

Type Values Removed Values Added
First Time appeared Erlang erlang/otp
Vendors & Products Erlang erlang/otp

Tue, 20 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.8, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N'}

threat_severity

Moderate


Fri, 16 Oct 2026 21:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 14 Oct 2026 17:00:00 +0000

Type Values Removed Values Added
Description Improper Certificate Validation vulnerability in the ssl application in Erlang/OTP allows a client that holds a certificate trusted by one SNI virtual host to authenticate to a second SNI virtual host on the same listener by resuming its TLS 1.2 session there. A server that serves several SNI names from one listen socket through sni_fun or sni_hosts keeps one pre-TLS 1.3 session cache per listener and does not bind a cached session to the SNI name or client trust policy that established it. When an SNI option set switches to verify_peer without naming reuse_sessions, ssl_config:update_options/3 inherits the base listener's reuse_sessions value of true, so the default that disables reuse for client-authenticating servers does not apply. On an abbreviated handshake ssl_session:is_resumable/4 checks only that the cached session uses one of the current server certificates and carries some peer certificate, and never revalidates that certificate against the CA selected for the requested name. The names must share a server certificate, which is common with wildcard or multi-SAN certificates. TLS 1.3 does not use this cache and is not affected. This issue affects OTP from OTP 18.0 before OTP 27.3.4.19, OTP 28.5.0.8, and OTP 29.1.2, corresponding to ssl from 7.0 before 11.2.12.14, 11.6.0.7, and 11.7.8.
Title TLS 1.2 session resumption in ssl crosses SNI virtual-host client-certificate trust boundaries
First Time appeared Erlang
Erlang erlang\/otp
Weaknesses CWE-295
CPEs cpe:2.3:a:erlang:erlang\/otp:*:*:*:*:*:*:*:*
Vendors & Products Erlang
Erlang erlang\/otp
References
Metrics cvssV4_0

{'score': 6.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Erlang Erlang/otp Erlang\/otp
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-10-16T20:09:49.566Z

Reserved: 2026-10-08T14:45:01.411Z

Link: CVE-2026-105236

cve-icon Vulnrichment

Updated: 2026-10-16T20:09:38.315Z

cve-icon NVD

Status : Deferred

Published: 2026-10-14T17:18:14.720

Modified: 2026-10-16T21:17:15.680

Link: CVE-2026-105236

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-14T16:55:51Z

Links: CVE-2026-105236 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T22:30:12Z

Weaknesses
  • CWE-295

    Improper Certificate Validation