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

VetorAV: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

CVE-2026-58225
GHSA-4MW9-4QGJ-M97W

Produtos afetados

Postgrex