CVE-2026-96596 in OTP
Sumário
de VulDB • 14/10/2026
Vulnerabilidade de loop infinito (Loop with Unreachable Exit Condition) no Erlang OTP stdlib (módulo erl_tar), hexpm hex_core (módulo hex_erl_tar), hexpm hex (módulo mix_hex_erl_tar) e erlang rebar3 (módulo r3_hex_erl_tar) permite que um atacante cause uma negação de serviço (DoS) ao fornecer um arquivo tar, por meio de um membro GNU sparse manipulado.
Quando `erl_tar:extract/1,2` grava um membro no disco, `erl_tar:stream_to_file_loop/3` o lê em blocos de 65536 bytes por padrão. Para um membro GNU sparse cujo mapa sparse termina antes do seu tamanho real, `erl_tar:do_sparse_read/3` corresponde à cláusula trailing-hole (buraco final) antes da sua cláusula zero-length (comprimento zero). Após o uso do bloco, a cláusula trailing-hole lê zero bytes, não avança a posição e recursa indefinidamente. Um arquivo de 2048 bytes mantém o processo de extração e um scheduler ocupados até que o processo seja encerrado. A opção `{max_size, N}` previne isso apenas quando N é inferior ao tamanho real do membro. A extração com a opção memory não é afetada.
O hex_core distribui sua própria cópia do erl_tar como hex_erl_tar, e o Hex e rebar3 distribuem o hex_core com nomes de módulos prefixados (mix_hex_erl_tar e r3_hex_erl_tar). Essas cópias contêm o mesmo código e não chamam o erl_tar da stdlib, portanto, são afetadas em qualquer versão do OTP. O OTP 28 não é afetado, mas um aplicativo executando no OTP 28 será afetado se extrair arquivos por meio de uma versão afetada do hex_core, Hex ou rebar3.
Este problema afeta o OTP desde a versão anterior ao OTP 29.1.2 (começando em OTP 29.0), correspondendo à stdlib da versão anterior à 8.1.1 (a partir de 8.0) e do rebar3 a partir da 3.27.1, além do hex a partir da 2.4.2; o hex_core: a partir da 0.14.0.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.