Description
The Erlang/OTP ssl application does not detect cycles when reconstructing an incomplete peer certificate chain during a TLS or DTLS handshake. In ssl_certificate:handle_incomplete_chain/5, the received chain is passed to ssl_certificate:build_certificate_chain/5, which walks issuer relationships via ssl_certificate:do_certificate_chain/7 with no cycle detection and no depth limit. When the peer supplies two mutually cross-signed certificates in unordered form (A issues B, B issues A), the issuer lookup alternates between the two certificates and the pair of functions recurses indefinitely, growing the call stack and chain accumulator without bound.
An unauthenticated remote attacker can send a crafted certificate chain in a TLS or DTLS Certificate handshake message to exhaust available memory and crash the BEAM node. Only a TCP connection and a partial handshake are required; no authentication or completed handshake is needed, and both TLS/DTLS servers and clients are affected when processing peer certificate messages.
This issue affects OTP from OTP 23.2 before OTP 27.3.4.15, OTP 28.5.0.4, and OTP 29.0.4, corresponding to ssl from 10.2 before 11.2.12.11, 11.6.0.4, and 11.7.4.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Erlang | OTP | 23.2, 10.2 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | erlang | 1:29.0.4+dfsg-1 | — |
| Debian 13 | erlang | 1:27.3.4.1+dfsg-1+deb13u3 | — |
| Debian 12 | erlang | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.04 LTS | erlang | 1:27.3.4.6+dfsg-1ubuntu0.1 | USN-8827-1 |
| Ubuntu 24.04 LTS | erlang | 1:25.3.2.8+dfsg-1ubuntu4.7 | USN-8827-1 |
| Ubuntu 22.04 LTS | erlang | 1:24.2.1+dfsg-1ubuntu0.7 | USN-8827-1 |
Show 4 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 20.04 LTS | erlang | 1:22.2.7+dfsg-1ubuntu0.5+esm2 | USN-8827-1 |
| Ubuntu Pro 18.04 LTS | erlang | 1:20.2.2+dfsg-1ubuntu2+esm3 | USN-8827-1 |
| Ubuntu Pro 16.04 LTS | erlang | 1:18.3-dfsg-1ubuntu3.1+esm3 | USN-8827-1 |
| Ubuntu Pro 14.04 LTS | erlang | 1:16.b.3-dfsg-1ubuntu2.2+esm2 | USN-8827-1 |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP7 | erlang | 23.3.4.19-150300.3.39.1 | SUSE-SU-2026:3645-1 |
| SLES 15 SP7 | erlang26 | 26.2.1-150300.7.28.1 | SUSE-SU-2026:3579-1 |
| SLES 15 SP6 | erlang | 23.3.4.19-150300.3.39.1 | SUSE-SU-2026:3645-1 |
| SLES 15 SP6 | erlang26 | 26.2.1-150300.7.28.1 | SUSE-SU-2026:3579-1 |
| SLES 15 SP5 | erlang | 23.3.4.19-150300.3.39.1 | SUSE-SU-2026:3645-1 |
| SLES 15 SP4 | erlang | 23.3.4.19-150300.3.39.1 | SUSE-SU-2026:3645-1 |
Show 5 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 15 SP6 | erlang | 23.3.4.19-150300.3.39.1 | SUSE-SU-2026:3645-1 |
| SLES for SAP 15 SP6 | erlang26 | 26.2.1-150300.7.28.1 | SUSE-SU-2026:3579-1 |
| SLES for SAP 15 SP5 | erlang | 23.3.4.19-150300.3.39.1 | SUSE-SU-2026:3645-1 |
| SLES for SAP 15 SP4 | erlang | 23.3.4.19-150300.3.39.1 | SUSE-SU-2026:3645-1 |
| SLE HPC 15 SP5 | erlang | 23.3.4.19-150300.3.39.1 | SUSE-SU-2026:3645-1 |
| SLE HPC 15 SP4 | erlang | 23.3.4.19-150300.3.39.1 | SUSE-SU-2026:3645-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | erlang | 28.5.0.4-1.1 | openSUSE-SU-2026:11559-1 |
| openSUSE Tumbleweed | erlang27 | 27.1.3-3.1 | openSUSE-SU-2026:11560-1 |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | erlang | 26.2.5.21-4 | — |
Advisories 6
- USN-8827-1 erlang vulnerabilities Ubuntu Security Notices (USN) · Sep 28, 2026
- WID-SEC-2026-2533 Erlang/OTP: Mehrere Schwachstellen BSI CERT-Bund (WID) · Sep 28, 2026
- openSUSE-SU-2026:11559-1 erlang-28.5.0.4-1.1 on GA media SUSE / openSUSE Security Updates · Aug 21, 2026
- openSUSE-SU-2026:11560-1 erlang27-27.1.3-3.1 on GA media SUSE / openSUSE Security Updates · Aug 21, 2026
- SUSE-SU-2026:3645-1 Security update for erlang SUSE / openSUSE Security Updates · Aug 21, 2026
- SUSE-SU-2026:3579-1 Security update for erlang26 SUSE / openSUSE Security Updates · Aug 12, 2026
References
- TLS Denial-of-Service using Invalid Cert Chains vendor-advisory related
- EEF CNA record for CVE-2026-58227 related
- OSV record EEF-CVE-2026-58227 related
- Erlang/OTP version ordering
- Introducing commit addc42d in erlang/otp related
- Fix commit 7db6472 in erlang/otp patch
- Fix commit 241d437 in erlang/otp patch
- Fix commit 0307bff in erlang/otp patch