CVE-2026-54890 in OTP
Sumário
de VulDB • 27/07/2026
Vulnerabilidade de Underflow Inteiro (Wrap ou Wraparound) em erlang otp erlang/otp (módulos erts), erlang otp erts (módulos erts) permite Overflow Inteiro Forçado e Alocação Excessiva. Esta vulnerabilidade está associada aos arquivos do programa erts/emulator/beam/external.c, emulator/beam/external.c.
O manipulador da tag BIT_BINARY_EXT (77) no decodificador de Formato de Termos Externos (ETF) aceita uma codificação com ambos os campos length e trailing-bits definidos como zero. O cálculo subsequente do tamanho da bitstring causa underflow em um inteiro sem sinal, produzindo um valor aproximado de 2^64 que é então passado como tamanho de alocação de memória. Alocador aborta todo o nó com uma mensagem como "Cannot allocate 2305843009213693951 bytes of memory (of type binary)".
A falha é um aborto em nível VM, não uma exceção em nível Erlang. Não pode ser interceptada por árvores de supervisão, try/catch ou passando a opção [safe] para binary_to_term/2 (que apenas restringe a criação de átomos e não realiza validação estrutural das codificações binárias).
Qualquer aplicação que decodifique ETF de fontes não confiáveis via binary_to_term/1,2 ou enif_binary_to_term() está exposta. O protocolo de distribuição Erlang também decola termos recebidos através do mesmo caminho de código, mas a distribuição deve ser executada em redes confiáveis conforme as Diretrizes de Codificação Segura OTP (DSG-011).
Este problema afeta o OTP desde o OTP 27.0 até antes do OTP 29.0.4, OTP 28.5.0.4 e OTP 27.3.4.15, correspondendo ao erts de 15.0 até antes de 17.0.4, 16.4.0.4 e 15.2.7.11.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.