Skip to main content

Erlang/OTP EUVDEUVD-2026-101387

| CVE-2026-105236 MEDIUM
Improper Certificate Validation (CWE-295)
2026-10-14 EEF
6.3
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

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

  1. Access
    Obtain client cert trusted by SNI vhost A
  2. Delivery
    Complete TLS 1.2 handshake and cache session with vhost A
  3. Exploit
    Resume session with SNI targeting vhost B
  4. Execution
    Server skips certificate re-validation against vhost B CA
  5. Impact
    Gain authenticated access to vhost B

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
Exploitation Conditions

Requires all of: (1) a server terminating multiple SNI virtual hosts from a single listen socket via sni_fun or sni_hosts; (2) pre-TLS 1.3 negotiation (TLS 1.2 or earlier) - TLS 1.3 does not use the affected session cache and is NOT vulnerable; (3) a target SNI host whose option set switches to verify_peer without explicitly setting reuse_sessions, so it inherits the base listener's reuse_sessions=true and the auto-disable-for-client-auth default never applies; (4) the two SNI names must share a server certificate (common with wildcard or multi-SAN certificates); and (5) the attacker must already hold a client certificate trusted by at least one of the virtual hosts. Limiting factors: configurations that pin reuse_sessions=false per SNI host, use distinct certificates per name, or run TLS 1.3 are not exploitable, substantially narrowing the real-world attack surface.

Impact

This is a genuine but conditional authentication-bypass/trust-confusion flaw rather than a mass-exploitation priority. The provided CVSS 4.0 vector (6.3, Medium) tells a consistent story: AV:N (reachable over the network), AC:L but AT:P (a specific attack requirement must be present - namely a resumable TLS 1.2 session and a shared server certificate), PR:N, UI:N, with only low confidentiality and integrity impact (VC:L/VI:L) and no availability or subsequent-system impact. No EPSS score was supplied, and the CVE is NOT in CISA KEV and has no public POC, so exploitation status is: no public exploit identified at time of analysis. The AT:P requirement is the dominant risk-limiting signal - exploitation depends on a fairly narrow server configuration (multiple SNI vhosts on one listener, pre-TLS 1.3, inherited reuse_sessions=true, and a certificate shared across names). One caveat worth flagging: the CVSS vector assigns PR:N, yet the attacker must already hold a client certificate trusted by one of the virtual hosts, which is effectively a credential/privilege precondition - I assess this closer to PR:L (see assessed vectors). Net: a real correctness/trust bug worth patching on affected mutual-TLS SNI deployments, but not a drop-everything internet-wide emergency.

Exploit ScenarioDerived

A server hosts several SNI virtual hosts on one listener using sni_fun or sni_hosts, where one host (B) requires client-certificate authentication (verify_peer) and the hosts share a wildcard or multi-SAN server certificate. An attacker who legitimately holds a client certificate trusted only by host A completes a normal TLS 1.2 handshake with host A, then opens an abbreviated (resumption) handshake to host B reusing that session; because the cached session is not bound to the original SNI name or trust policy, the server accepts the attacker as authenticated to host B. No public exploit code is known, and the attack is constrained by the AT:P attack requirement in the CVSS vector.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 14, 2026

TLS 1.2 session resumption in the Erlang/OTP ssl application can let a client holding a certificate trusted by one SNI virtual host authenticate to a second SNI virtual host served from the same listen socket, because the per-listener pre-TLS 1.3 session cache is not bound to the SNI name or the trust policy that established it. The flaw is exploitable only under a specific configuration: pre-TLS 1.3 negotiation, multiple SNI names sharing one server certificate (wildcard or multi-SAN), an SNI option set that switches to verify_peer without explicitly setting reuse_sessions, and an attacker who already possesses a client certificate trusted by at least one of the virtual hosts; TLS 1.3 is unaffected. CISA KEV does not list this issue and no public exploit code was identified at time of analysis, though EPSS-style urgency is low given a published vendor patch. The published CVSS 4.0 score is 6.3 (PR:N), while independent assessment rates it around CVSS 3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N - a genuine but conditional trust-confusion/authentication-bypass issue rather than a mass-exploitation priority.

RemediationAI

Upgrade to a fixed release: OTP 27.3.4.19, OTP 28.5.0.8, or OTP 29.1.2 (ssl 11.2.12.14, 11.6.0.7, or 11.7.8 respectively), as documented in the GitHub advisory GHSA-2g23-cgjh-34gq (https://github.com/erlang/otp/security/advisories/GHSA-2g23-cgjh-34gq) and the corresponding upstream commits (https://github.com/erlang/otp/commit/0c20f3683b3c81fd30b46047195be9b3d2c69d76, https://github.com/erlang/otp/commit/4d76adbf39d547a931048544df09c3c087e56618, https://github.com/erlang/otp/commit/10ee925d0fee8413f1170cc21bfcf123c8d22454). Where immediate patching is not possible, explicit compensating controls are effective: set reuse_sessions=false on every SNI option set that uses verify_peer (this disables TLS 1.2 abbreviated handshakes and increases handshake CPU and latency but closes the bypass), or give each SNI virtual host a distinct server certificate so a session bound to one name can no longer satisfy the resumption check for another (trade-off is certificate management overhead). Restricting listeners to TLS 1.3 also removes exposure since TLS 1.3 does not use the affected session cache, at the cost of dropping TLS 1.2 clients.

Affected VersionsENISA

otp 7.0 <*
otp 4fe38c4b8b2c8024afb60990e598ff823743fd54 <*
otp 18.0 <*

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 affected component is the Erlang/OTP ssl application (CPE cpe:2.3:a:erlang:otp), specifically its TLS 1.2 session-resumption path. A server that terminates several SNI virtual hosts on a single listen socket via sni_fun or sni_hosts maintains one pre-TLS 1.3 session cache per listener; cached sessions carry no binding to the SNI name or the client trust policy that created them. When an SNI option set enables verify_peer without naming reuse_sessions, ssl_config:update_options/3 inherits the base listener's reuse_sessions=true, so the built-in default that disables reuse for client-authenticating servers never applies. On an abbreviated handshake, ssl_session:is_resumable/4 only verifies that the cached session matches one of the current server certificates and carries some peer certificate, and never revalidates that peer certificate against the CA selected for the requested SNI name - the root cause is CWE-295 (Improper Certificate Validation), i.e. missing re-validation of the client certificate against the correct trust anchor. Exploitation additionally requires the two SNI names to share a server certificate, which is common with wildcard or multi-SAN certificates. TLS 1.3 does not use this session cache and is not affected.

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 6.3 MEDIUM
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
vuln.today AI 4.2 MEDIUM

Network-reachable but needs a shared certificate and resumable TLS 1.2 session (AC:H) plus a client cert trusted by one vhost (PR:L); low confidentiality/integrity gain on vhost B, no availability impact.

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

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
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.4%
Top 71% exploitable
Prevalence
Medium
widely-used runtime (RabbitMQ, ejabberd, Elixir) but not universally deployed
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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

Vendor StatusVendor

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