PT-2026-39753 · Postgresql Global Development Group+1 · Postgresql+1
Mdisec
·
Publicado
2026-05-11
·
Atualizado
2026-06-16
·
CVE-2026-44477
CVSS v3.1
9.9
Crítica
| Vetor | AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
Nome do Software Vulnerável e Versões Afetadas
CloudNativePG versões anteriores a 1.28.3
CloudNativePG versões anteriores a 1.29.1
Description
O exportador de métricas no CloudNativePG abre uma conexão PostgreSQL como o superusuário
postgres via socket Unix local do pod e, posteriormente, rebaixa a sessão usando SET ROLE pg monitor. Como o SET ROLE modifica apenas o current user enquanto o session user permanece como postgres, qualquer expressão SQL avaliada durante uma sessão de coleta (scrape) pode executar RESET ROLE para recuperar privilégios de superusuário. Um invasor pode então usar o comando COPY ... TO PROGRAM para iniciar um subprocesso no nível do sistema operacional como o usuário postgres dentro do pod primário. A flag de transação READ ONLY não impede isso, pois ela restringe apenas gravações no estado do banco de dados, não processos externos.Existem dois caminhos principais de exploração:
- Consultas de métricas personalizadas com identificadores não qualificados: Um usuário que possua um esquema no
search pathpode implantar um objeto sombra. Quando o exportador avalia a consulta, a expressão sombra é executada com privilégios de superusuário. - Configuração de monitoramento padrão: A métrica
pg extensionsnodefault-monitoring.yamlutilizava uma chamadacurrent database()não qualificada em todos os bancos de dados de destino. Qualquer usuário sem privilégios de superusuário que possua um banco de dados de usuário poderia sombrear essa função para disparar a escalada.
Isso permite que uma função de banco de dados com baixos privilégios escale para superusuário do PostgreSQL e obtenha execução remota de código (RCE) como o usuário
postgres dentro do pod primário.Recommendations
Atualize para a versão 1.28.3 ou 1.29.1.
Como solução temporária, qualifique o esquema de todos os identificadores em consultas de métricas personalizadas, utilizando prefixos
pg catalog. explícitos para todas as funções e visualizações de catálogo.
Restrinja a propriedade do banco de dados para garantir que apenas funções totalmente confiáveis possuam bancos de dados de usuário em clusters monitorados.
Limite o escopo de consultas target databases: '*' para bancos de dados específicos e conhecidamente seguros.
Evite expor o SQL de consultas de métricas a usuários não confiáveis.Correção
RCE
LPE
Untrusted Search Path
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Cloudnativepg
Postgresql