PT-2026-57152 · Postgrex · Postgrex
José Valim
+1
·
Publicado
2026-07-10
·
Atualizado
2026-07-10
·
CVE-2026-58225
CVSS v4.0
2.1
Baixa
| Vetor | AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N |
Nome do Software Vulnerável e Versões Afetadas
postgrex versões 0.16.0 até 0.22.2
Description
Um problema no módulo
Postgrex.Notifications permite que um invasor injete SQL na consulta de replay de reconexão ao influenciar o nome de um canal LISTEN. Embora a função quote channel/1 sanitize aspas duplas, ela não escapa o delimitador de citação de cifrão $$ usado no bloco de código anônimo dentro da função handle connect/1. Como a função listen/3 apenas rejeita bytes nulos e nomes com mais de 63 bytes, um nome de canal contendo $$ pode encerrar prematuramente a string delimitada por cifrões. Isso faz com que o PostgreSQL interprete o restante da entrada como instruções de nível superior, levando à rejeição da consulta de replay em cada tentativa de reconexão. Consequentemente, a conexão de notificação não consegue restabelecer as inscrições, resultando em uma negação de serviço onde as notificações são silenciosamente descartadas para todos os canais que compartilham essa conexão. Isso ocorre quando entradas não confiáveis são passadas como nome de canal para Postgrex.Notifications.listen/3.Recommendations
Atualize o postgrex para a versão 0.22.3 ou posterior.
Valide os nomes dos canais antes de passá-los para
Postgrex.Notifications.listen/3, rejeitando qualquer nome que contenha o delimitador $$ ou restringindo os nomes a caracteres alfanuméricos e sublinhados.Exploit
Correção
SQL injection
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Postgrex