A falha CVE-2026-55953, com severidade crítica e pontuação CVSS 9.1, permite que um atacante posicionado no caminho entre o cliente e o servidor ignore completamente a verificação de certificados em conexões TLS 1.2 e DTLS feitas pelo runtime Erlang/OTP. O problema afeta todas as versões do OTP a partir da 17.0 e foi corrigido nos builds 29.0.4, 28.5.0.4 e 27.3.4.15. A correção é urgente para qualquer sistema que use Erlang/OTP como cliente TLS, incluindo serviços de mensageria baseados em RabbitMQ e backends de telecomunicações.

Classificada como CWE-757 (seleção de algoritmo menos seguro durante negociação), a vulnerabilidade foi divulgada em 27 de julho de 2026 pela Erlang Ecosystem Foundation, a autoridade CVE responsável pelo projeto Erlang/OTP. Nenhuma exploração ativa foi confirmada até o momento, mas o risco de interceptação de tráfego é elevado em ambientes onde o cliente opera com TLS 1.2 ou DTLS.

Como a falha funciona

O cliente TLS do Erlang/OTP não valida se o conjunto de cifras selecionado pelo servidor na mensagem ServerHello estava entre os oferecidos pelo cliente no ClientHello. O handler tls_handshake:hello/5 confere a versão do protocolo negociado e o sentinela de downgrade, mas repassa o conjunto de cifras escolhido pelo servidor diretamente para ssl_handshake:handle_server_hello_extensions/9, que o instala sem nenhuma verificação de pertinência.

Um atacante on-path pode responder com uma ServerHello selecionando um conjunto de cifras anônimo — como TLS_DH_anon ou TLS_ECDH_anon — que o cliente nunca ofereceu. Como conjuntos anônimos não exigem certificado do servidor, toda a configuração de verify_peer e cacerts é ignorada: o atacante conclui o handshake com seus próprios parâmetros efêmeros, nenhum certificado é validado, nenhum hostname é conferido e a função ssl:connect retorna {ok, Socket}. Todo o tráfego de aplicação subsequente fica legível e modificável pelo atacante.

Versões afetadas e corrigidas

A falha afeta o OTP desde a versão 17.0, lançada em 2014, até os builds de correção abaixo. O componente vulnerável é a aplicação ssl, cujas versões corrigidas acompanham cada linha de manutenção do OTP:

OTP linha afetada OTP corrigido Versão ssl corrigida
17.0 a < 27.3.4.15 27.3.4.15 11.2.12.11
28.0 a < 28.5.0.4 28.5.0.4 11.6.0.4
29.0 a < 29.0.4 29.0.4 11.7.4

Como o Erlang/OTP é a base de numerosos produtos de infraestrutura, o impacto ultrapassa os sistemas que executam OTP diretamente. RabbitMQ, por exemplo, depende de Erlang/OTP para suas conexões TLS e herda o risco quando opera como cliente. Da mesma forma que outras falhas críticas adicionadas recentemente ao KEV, a janela de exposição deve ser fechada com rapidez.

Como mitigar e corrigir

A solução definitiva é atualizar o Erlang/OTP para um dos builds corrigidos. Enquanto a atualização não for possível, a workaround recomendada pela equipe Erlang/OTP é restringir o cliente a usar exclusivamente TLS 1.3:

  1. Atualize o OTP para 29.0.4, 28.5.0.4 ou 27.3.4.15, conforme a linha de manutenção em uso.
  2. Restrinja o cliente a TLS 1.3 definindo versions como ['tlsv1.3'] nas opções de ssl do cliente. O caminho TLS 1.3 realiza a verificação de pertinência do conjunto de cifras e não é afetado.
  3. Inventarie dependências: verifique se RabbitMQ, EMQX ou qualquer serviço que embute Erlang/OTP está executando uma versão corrigida. A vulnerabilidade só afeta o lado cliente; servidores não são impactados.
  4. Monitore tráfego: procure por conexões TLS com conjuntos de cifras anônimos, que indicam possível tentativa de exploração do ataque.

As cinco falhas do conjunto

A CVE-2026-55953 foi divulgada junto com mais quatro vulnerabilidades no Erlang/OTP, totalizando cinco correções: uma crítica e quatro de severidade alta. As demais causam negação de serviço por recursão indefinida na validação de cadeias de certificados cruzados (CVE-2026-58227, CVSS 8.7), crescimento exponencial da árvore de políticas de certificados (CVE-2026-59251, CVSS 8.7), estouro de buffer no scanner Megaco (CVE-2026-59250, CVSS 8.3) e falha de decoding em binary_to_term que derruba a VM BEAM inteira (CVE-2026-54890, CVSS 8.2).

Assim como ocorre com zero-days adicionados ao catálogo KEV da CISA, a ausência de exploração confirmada não deve reduzir a urgência de correção. A facilidade do ataque man-in-the-middle e a amplitude de produtos que dependem de Erlang/OTP tornam a janela de patch crítica para equipes de operações.

Fontes