CVE-2026-58227
CBL Mariner Análise e mitigação de vulnerabilidades

Visão geral

CVE-2026-58227 is a TLS/DTLS Denial-of-Service vulnerability in the Erlang/OTP ssl application caused by uncontrolled recursion during certificate chain reconstruction. When a peer supplies two mutually cross-signed certificates in unordered form (certificate A issues B, B issues A), the chain-building logic in ssl_certificate:handle_incomplete_chain/5 enters unbounded recursion with no cycle detection or depth limit, exhausting memory and crashing the BEAM node. The vulnerability affects OTP versions from 23.2 before 29.0.4, 28.5.0.4, and 27.3.4.15 (corresponding to ssl application versions 10.2 before 11.7.4, 11.6.0.4, and 11.2.12.11). It was disclosed on July 27, 2026, with a CVSS v4.0 base score of 8.7 (High) (GitHub Advisory, Feedly).

Detalhes técnicos

The root cause is CWE-674 (Uncontrolled Recursion) in ssl_certificate.erl. Specifically, ssl_certificate:handle_incomplete_chain/5 passes the received certificate chain to ssl_certificate:build_certificate_chain/5, which walks issuer relationships via ssl_certificate:do_certificate_chain/7 without any cycle detection or maximum depth enforcement. When an attacker supplies two mutually cross-signed certificates (A issues B, B issues A) in unordered form, the issuer lookup alternates between the two certificates indefinitely, growing both the call stack and chain accumulator without bound until the BEAM process exhausts available memory. The fix replaces the recursive approach with an acyclic directed graph (digraph:new([acyclic])) for unordered/extraneous chain handling, and adds a MAX_CHAIN depth limit of 12 and a DER-based duplicate certificate check in do_certificate_chain (GitHub Commit, GitHub Advisory).

Impacto

Successful exploitation results in complete denial of service for the targeted BEAM node — the process exhausts available memory and crashes. Both TLS/DTLS servers and clients are affected when processing peer Certificate messages, meaning any Erlang/OTP application using the ssl application for TLS or DTLS communication is at risk. There is no confidentiality or integrity impact; the sole consequence is availability loss, which can be severe for high-availability systems built on Erlang/OTP such as telecommunications infrastructure, messaging platforms, and distributed databases (GitHub Advisory, Feedly).

Exploração

The vulnerability is highly automatable: only a TCP connection and a partial TLS/DTLS handshake are required — no authentication or completed handshake is needed. No public proof-of-concept exploit code has been identified, and there is no evidence of in-the-wild exploitation as of the disclosure date. The EPSS score is approximately 0.0035 (low probability of exploitation in the near term), and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The vulnerability was responsibly disclosed by Lukas Backström at Erlang Solutions (GitHub Advisory, Feedly).

Etapas de exploração

  1. Reconnaissance: Identify internet-facing services running Erlang/OTP versions 23.2 through 29.0.3 (or equivalent ssl application versions 10.2 through 11.7.3) using tools like Shodan or Censys, targeting TLS/DTLS endpoints (e.g., port 443, 8883, 5671, or custom DTLS ports).
  2. Generate malicious certificate pair: Create two self-signed or CA certificates where certificate A lists B as its issuer and certificate B lists A as its issuer — forming a mutual cross-signing cycle. This can be done with OpenSSL or custom tooling to craft the issuer/subject fields appropriately.
  3. Initiate TLS/DTLS handshake: Establish a TCP (or UDP for DTLS) connection to the target and begin a TLS/DTLS handshake.
  4. Send crafted Certificate message: During the handshake, transmit a TLS Certificate message containing the two mutually cross-signed certificates in unordered form. No completed handshake or authentication is required — the Certificate message alone triggers the vulnerable code path.
  5. Trigger unbounded recursion: The target's ssl_certificate:handle_incomplete_chain/5 processes the unordered chain, entering infinite recursion between the two certificates, exhausting memory and crashing the BEAM node (GitHub Advisory, Feedly).

Indicadores de compromisso

  • Network: Repeated incomplete TLS/DTLS handshakes from a single source IP that terminate abruptly without completing; unusual volume of Certificate handshake messages containing only two certificates with circular issuer relationships.
  • Logs: Erlang/OTP crash dump files (erl_crash.dump) generated in the working directory of the BEAM process; OTP error logger entries indicating process termination due to memory exhaustion or stack overflow during SSL handshake processing.
  • Process: Sudden termination of the BEAM VM process (beam.smp or beam) with out-of-memory errors; abnormal memory growth in the Erlang node observable via observer or OS-level monitoring tools immediately preceding a crash.
  • File System: Presence of erl_crash.dump files with stack traces referencing ssl_certificate:build_certificate_chain, ssl_certificate:do_certificate_chain, or ssl_certificate:handle_incomplete_chain functions (GitHub Advisory).

Mitigação e soluções alternativas

Upgrade to one of the patched OTP releases: OTP 29.0.4, OTP 28.5.0.4, or OTP 27.3.4.15 (corresponding to ssl application versions 11.7.4, 11.6.0.4, or 11.2.12.11 respectively). The fix introduces an acyclic digraph-based approach for unordered certificate chain handling, a MAX_CHAIN depth limit of 12, and a DER-based duplicate certificate guard in do_certificate_chain. No official workaround short of patching is provided by the vendor. As interim mitigations, consider implementing network-level rate limiting on TLS/DTLS handshake attempts, restricting accepted certificate chain structures at the network perimeter, and deploying automated BEAM node restart procedures to minimize downtime in the event of exploitation (GitHub Advisory, GitHub Commit).

Reações da comunidade

The vulnerability was responsibly disclosed by Lukas Backström at Erlang Solutions and acknowledged by the Erlang/OTP project team, with remediation developed by IngelaAndin and reviewed by dgud and u3s. Security aggregators including SecurityOnline.info covered the disclosure alongside other Erlang/OTP vulnerabilities. The vulnerability has been picked up by standard vulnerability tracking platforms (VulnDB, OSV, CIRCL) shortly after disclosure, indicating normal community awareness without significant amplification or controversy (GitHub Advisory, SecurityOnline).

Recursos adicionais


OrigemEste relatório foi gerado usando IA

Relacionado CBL Mariner Vulnerabilidades:

CVE ID

Gravidade

Pontuação

Tecnologias

Nome do componente

Exploração do CISA KEV

Tem correção

Data de publicação

CVE-2026-55953CRITICAL9.1
  • CBL Mariner logoCBL Mariner
  • cpe:2.3:a:erlang:erlang\/otp
NãoSimJul 27, 2026
CVE-2026-59251HIGH8.7
  • CBL Mariner logoCBL Mariner
  • cpe:2.3:a:erlang:erlang\/otp
NãoSimJul 27, 2026
CVE-2026-58227HIGH8.7
  • CBL Mariner logoCBL Mariner
  • cpe:2.3:a:erlang:erlang\/otp
NãoSimJul 27, 2026
CVE-2026-42792MEDIUM6.3
  • CBL Mariner logoCBL Mariner
  • cpe:2.3:a:erlang:erlang\/otp
NãoSimJul 27, 2026
CVE-2026-55737MEDIUM5.1
  • CBL Mariner logoCBL Mariner
  • erlang
NãoSimJul 27, 2026

Avaliação de vulnerabilidade gratuita

Compare sua postura de segurança na nuvem

Avalie suas práticas de segurança na nuvem em 9 domínios de segurança para comparar seu nível de risco e identificar lacunas em suas defesas.

Solicitar avaliação

Marque uma demonstração personalizada

Pronto para ver a Wiz em ação?

"A melhor experiência do usuário que eu já vi, fornece visibilidade total para cargas de trabalho na nuvem."
David EstlickCISO
"A Wiz fornece um único painel de vidro para ver o que está acontecendo em nossos ambientes de nuvem."
Adam FletcherDiretor de Segurança
"Sabemos que se a Wiz identifica algo como crítico, na verdade é."
Greg PoniatowskiChefe de Gerenciamento de Ameaças e Vulnerabilidades