PT-2026-136970
CVE-2026-118391
·
Publicado
2026-11-04
·
Atualizado
2026-11-04
Descrição por
CVSS 4.0
8.9
AltaMétricasAV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
Nome do Software Vulnerável e Versões Afetadas
ecto versões 3.4.0 até 3.14.2
Description
Um invasor remoto não autenticado pode causar exaustão de memória tanto na aplicação quanto no servidor de banco de dados. Isso ocorre quando a aplicação interpola dados fornecidos pelo usuário em
json extract path/2, field[^key] ou splice/1. O Ecto armazena consultas preparadas em cache em uma tabela ETS sem limites de tamanho ou políticas de expulsão. Como os elementos de caminho JSON interpolados e as expansões de splice/1 tornam-se parte da expressão da consulta em vez de parâmetros, cada chave ou comprimento de lista exclusivo cria uma nova entrada de cache. Ao usar ecto sql, cada entrada também gera uma nova instrução preparada na conexão do banco de dados. Essa memória não é liberada até que os processos sejam reiniciados.Recommendations
Atualize o ecto para a versão 3.14.3 ou posterior.
Como solução temporária, passe o caminho como um parâmetro de consulta para evitar que ele faça parte da chave do cache (por exemplo, usando
fragment("? #> ?", i.meta, type(^path, {:array, :string})) para PostgreSQL).
Como solução temporária, desative o cache para as consultas afetadas definindo query cache: false na chamada Repo.all().
Como solução temporária, restrinja as chaves e os comprimentos de lista a um conjunto conhecido e predefinido antes de construir a consulta.Explorabilidade
Correção
Impactos
Pesquisadores
Fornecedores
Produtos afetados
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾