PT-2026-114358 · Erlang+2 · Otp+3
CVSS v4.0
5.9
Média
| Vetor | AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N |
Nome do Software Vulnerável e Versões Afetadas
Erlang OTP versões 29.0 até 29.1.1
stdlib versões 8.0 até 8.1.0
hex versões 2.4.2 até 2.5.2
hex core versões 0.14.0 até 0.20.0
rebar3 versões 3.27.1 e posteriores
Description
Um problema de loop infinito existe no módulo
erl tar (e suas variantes hex erl tar, mix hex erl tar e r3 hex erl tar) ao extrair arquivos tar. Um invasor pode causar a negação de serviço fornecendo um membro GNU sparse manipulado onde o mapa esparso termina antes do tamanho real do membro. Durante a extração, a função erl tar:extract/1,2 utiliza erl tar:stream to file loop/3 para ler dados em blocos. Nas versões afetadas, a função erl tar:do sparse read/3 corresponde a uma cláusula de trailing-hole antes de uma cláusula de comprimento zero, levando a uma recursão ilimitada que consome um escalonador e mantém o processo ocupado indefinidamente. Isso pode ser acionado com um arquivo de apenas 2048 bytes. A opção {max size, N} apenas previne isso se N for menor que o tamanho real do membro. A extração usando a opção memory não é afetada.Recommendations
Atualize o Erlang OTP para a versão 29.1.2 ou posterior.
Atualize o stdlib para a versão 8.1.1 ou posterior.
Atualize o hex para a versão 2.5.3 ou posterior.
Atualize o hex core para a versão 0.20.1 ou posterior.
Atualize o rebar3 para uma versão que contenha a correção.
Como solução temporária, passe
{chunks, N} e {max size, N} com o mesmo valor N para erl tar:extract/2 para garantir que membros maiores que N sejam rejeitados e os demais sejam lidos em uma única chamada.
Alternativamente, use a opção memory para extração e grave manualmente os arquivos resultantes no disco.Exploit
Correção
Infinite Loop
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Otp
Hex
Hex Core
Rebar3