CVE-2026-105236: Erlang/OTP improper TLS 1.2 session validation in multi-SNI servers

CVE-2026-105236 · Severity: info · Published 2026-10-14

Erlang/OTP's SSL library contains a flaw in how it handles cached TLS 1.2 sessions when a server presents multiple virtual hosts (SNI names) on a single listener. An attacker with a client certificate trusted by one virtual host can reuse a cached session to authenticate to a different virtual host with higher trust requirements, potentially gaining unauthorized access to services that should reject the certificate.

Technologies: Erlang/OTP. Vendors: Erlang.

Quick answers

Is CVE-2026-105236 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-105236 being exploited in the wild.
How severe is CVE-2026-105236?
Informational severity, published 14 October 2026.
Which products and versions are affected?
Erlang/OTP 18.0 before 27.3.4.19; 28.0 before 28.5.0.8; 29.0 before 29.1.2.
Is there a fix for CVE-2026-105236?
Yes: fixed in Erlang/OTP 27.3.4.19, 28.5.0.8, 29.1.2. Until then: Set reuse_sessions to false explicitly in the ssl:listen/2 options and in each SNI option set returned by sni_fun, or disable TLS 1.2 in favor of TLS 1.3 where possible. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-105236 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-105236?
Check whether you run Erlang/OTP at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • Fixed in: Erlang/OTP 27.3.4.19, 28.5.0.8, 29.1.2

Set reuse_sessions to false explicitly in the ssl:listen/2 options and in each SNI option set returned by sni_fun, or disable TLS 1.2 in favor of TLS 1.3 where possible.

Technical details

The vulnerability exists in the ssl module's session resumption logic for TLS 1.2: the session cache per listener does not bind cached sessions to the SNI name or CA that created them, and on abbreviated handshakes the server never revalidates the peer certificate against the CA of the newly requested name. This requires the SNI names to share a server certificate (common with wildcard or multi-SAN certificates) and applies only to TLS 1.2; TLS 1.3 is unaffected. An attacker completes a full handshake with a lower-trust name, then resumes that session with a higher-trust name to bypass certificate validation.

Affected products

  • Erlang Erlang/OTP 18.0 before 27.3.4.19; 28.0 before 28.5.0.8; 29.0 before 29.1.2

Timeline

  • 2026-10-14: disclosed

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.