PT-2026-108772 · Hexpm · Elixir-Protobuf

·

CVE-2026-104635

·

Publicado

2026-10-09

·

Atualizado

2026-10-09

CVSS v4.0

8.2

Alta

VetorAV: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 elixir-protobuf versões 0.8.0 até 0.17.0
Description Um invasor remoto não autenticado pode causar a interrupção do processo de decodificação ao fornecer um documento JSON profundamente aninhado. Isso ocorre quando uma aplicação decodifica um JSON fornecido por um invasor em um esquema que contenha um tipo de mensagem autorreferencial ou cíclica usando as funções Protobuf.JSON.decode/3, Protobuf.JSON.decode!/3 ou Protobuf.JSON.from decoded/3.
Em lib/protobuf/json/decode.ex, a cláusula embedded-message da função decode singular/3 recursa para internal from json data/3 a cada nível de aninhamento sem incrementar ou verificar o contador de profundidade do decodificador. Embora a guarda increase depth and maybe throw/1 exista, ela se aplica apenas às cláusulas Google.Protobuf.ListValue e Google.Protobuf.Struct, tornando a opção recursion limit ineficaz para tipos de mensagem definidos pelo usuário. Consequentemente, cada nível de aninhamento aloca um quadro de pilha e objetos de heap, permitindo que um documento suficientemente profundo esgote a memória do processo de decodificação e o interrompa. Se a flag de processo max heap size do BEAM estiver configurada como ilimitada, requisições simultâneas podem esgotar a memória de todo o nó.
Recommendations Atualize o elixir-protobuf para a versão 0.17.1. Como medida paliativa temporária, rejeite documentos JSON cuja profundidade de aninhamento exceda um limite fixo na camada web ou de middleware antes que sejam passados para as funções Protobuf.JSON.decode/3, Protobuf.JSON.decode!/3 ou Protobuf.JSON.from decoded/3.

Correção

Uncontrolled Recursion

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2026-104635
GHSA-M497-C2H9-RVW6

Produtos afetados

Elixir-Protobuf