PT-2026-64993 · Unknown+1 · Erlang/Otp+1
CVSS v4.0
8.2
Alta
| Vetor | AV:N/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 27.0 até 27.3.4.14
erlang otp versão 28.5.0.3
erlang otp versões 29.0 até 29.0.3
erts versões 15.0 até 15.2.7.10
erts versão 16.4.0.3
erts versões 17.0 até 17.0.3
Description
Um subfluxo de inteiro (integer underflow) existe no decodificador External Term Format (ETF) dentro do manipulador da tag
BIT BINARY EXT (77). Quando o decodificador aceita uma codificação onde os campos de comprimento e bits finais são definidos como zero, o cálculo do tamanho da string de bits sofre um underflow em um inteiro sem sinal. Isso resulta em um valor extremamente grande (aproximadamente 2^64) sendo passado como tamanho de alocação de memória, fazendo com que o alocador aborte todo o nó. Este aborto em nível de VM não pode ser interceptado por árvores de supervisão, blocos try/catch ou pela opção [safe] em binary to term/2. Aplicações que decodificam ETF de fontes não confiáveis usando binary to term/1,2 ou enif binary to term() estão expostas. O protocolo de distribuição Erlang também utiliza este caminho de código, embora seja destinado a redes confiáveis.Recommendations
Atualize o erlang otp para a versão 27.3.4.15, 28.5.0.4 ou 29.0.4.
Atualize o erts para a versão 15.2.7.11, 16.4.0.4 ou 17.0.4.
Evite chamar
binary to term/1,2 ou enif binary to term() em dados de fontes não confiáveis.
Utilize formatos de serialização alternativos, como JSON ou Protocol Buffers, em vez de ETF para entradas não confiáveis.Correção
Integer Underflow
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Erts
Erlang/Otp