
# Verificador de vulnerabilidades PostgreSQL não destrutivo para CVE-2026-6471 Audita a versão do servidor e os privilégios de REPLICATION para identificar exposição à falha de autorização de decodificação lógica, com orientações de remediação.
Um verificador de vulnerabilidade defensivo e não destrutivo para CVE-2026-6471
CVE-2026-6471 é uma vulnerabilidade de autorização do PostgreSQL que envolve o subsistema de decodificação lógica (logical decoding).
A vulnerabilidade pode permitir que uma função (role) do PostgreSQL que possua o privilégio REPLICATION, mas sem privilégios de superusuário, faça o servidor PostgreSQL carregar uma biblioteca controlada pelo atacante e acessível à conta do sistema operacional do PostgreSQL.
A exploração bem-sucedida pode resultar em execução arbitrária de código com os privilégios do processo do servidor PostgreSQL.
Este repositório fornece um PoC de detecção segura projetado para avaliações de segurança autorizadas.
⚠️ Nenhuma biblioteca compartilhada maliciosa é carregada e nenhum comando do sistema operacional é executado pelo verificador.
| Propriedade | Valor |
|---|---|
| CVE | CVE-2026-6471 |
| Produto | PostgreSQL |
| Componente | Decodificação Lógica (Logical Decoding) |
| CWE | CWE-862 — Autorização Ausente |
| CVSS v3.1 | 7.2 Alta |
| Vetor de Ataque | Rede |
| Complexidade do Ataque | Baixa |
| Privilégios Necessários | Altos |
| Interação do Usuário | Nenhuma |
| Confidencialidade | Alta |
| Integridade | Alta |
| Disponibilidade | Alta |
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Sob as condições vulneráveis, um atacante que já possua uma conta PostgreSQL com a capacidade de replicação necessária pode potencialmente cruzar a fronteira de privilégios entre o banco de dados e o sistema operacional.
┌──────────────────────┐
│ Usuário PostgreSQL │
│ REPLICATION = SIM │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Decodificação Lógica│
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Validação de │
│ Autorização Ausente │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Carregamento de │
│ Biblioteca │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Usuário do SO do │
│ PostgreSQL │
└──────────────────────┘
O impacto real depende fortemente dos privilégios e das permissões do sistema de arquivos da conta do sistema operacional do PostgreSQL.
O aviso de segurança do projeto PostgreSQL identifica as seguintes ramificações afetadas:
| Ramificação | Afetada | Corrigida |
|---|---|---|
| PostgreSQL 14 | < 14.24 | 14.24 |
| PostgreSQL 15 | < 15.19 | 15.19 |
| PostgreSQL 16 | < 16.15 | 16.15 |
| PostgreSQL 17 | < 17.11 | 17.11 |
| PostgreSQL 18 | < 18.6 | 18.6 |
Atualize para a versão de segurança mais recente disponível para a sua ramificação do PostgreSQL.
Este projeto executa intencionalmente apenas verificações não destrutivas.
O verificador deve confirmar:
REPLICATIONSELECT
version() AS postgres_version,
current_user AS current_user,
rolsuper AS is_superuser,
rolreplication AS has_replication
FROM pg_roles
WHERE rolname = current_user;
Exemplo de saída:
postgres_version : PostgreSQL 17.x
current_user : security_audit
is_superuser : f
has_replication : t
Uma versão vulnerável combinada com privilégios REPLICATION deve ser tratada como exigindo remediação.
O PoC segue este fluxo de trabalho:
┌───────────────┐
│ Conexão │
│ PostgreSQL │
└───────┬───────┘
│
▼
┌─────────────────┐
│ Obter Versão do │
│ Servidor │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Verificar Função│
│ Atual │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Verificar │
│ REPLICATION │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Comparar com │
│ Versões │
│ Corrigidas │
└────────┬────────┘
│
┌───────┴────────┐
▼ ▼
Potencialmente Não
Vulnerável Afetado
❌ Carregar um .so controlado pelo atacante
❌ Executar payloads SQL arbitrários
❌ Executar comandos do sistema operacional
❌ Abrir um shell reverso
❌ Modificar a configuração do PostgreSQL
❌ Modificar o conteúdo do sistema de arquivos
❌ Criar persistência
❌ Explorar sistemas de produção
Isso torna o verificador adequado para avaliação de vulnerabilidade controlada e fluxos de trabalho de inventário.
Clone o repositório:
git clone https://github.com/<YOUR-USERNAME>/CVE-2026-6471.git
cd CVE-2026-6471
Instale a dependência Python necessária:
python3 -m pip install psycopg2-binary
Execute o verificador:
python3 CVE-2026-6471.py
Exemplo:
╔════════════════════════════════════════════════════╗
║ VERIFICAÇÃO SEGURA CVE-2026-6471 ║
║ Auditoria de Decodificação Lógica PostgreSQL ║
╚════════════════════════════════════════════════════╝
[+] Conectando ao PostgreSQL...
[+] Versão do servidor : PostgreSQL 17.x
[+] Função atual : security_audit
[+] Superusuário : Falso
[+] Replicação : Verdadeiro
[!] A versão do PostgreSQL requer atualização de segurança
[!] Privilégio REPLICATION detectado
[!] POTENCIALMENTE VULNERÁVEL
[!] Atualize o PostgreSQL para uma versão corrigida.

Os administradores podem inspecionar funções habilitadas para replicação com:
SELECT
rolname,
rolsuper,
rolreplication
FROM pg_roles
WHERE rolreplication = true;
Revise cada conta retornada.
Se uma conta não exigir privilégios de replicação, remova os privilégios desnecessários de acordo com seus requisitos operacionais.
Instale a versão corrigida apropriada:
14.24+
15.19+
16.15+
17.11+
18.6+
Prefira a versão de segurança mais recente disponível do PostgreSQL em vez de parar na versão corrigida mínima.
Identifique contas com capacidade de replicação:
SELECT
rolname,
rolreplication
FROM pg_roles
WHERE rolreplication = true;
Remova privilégios de replicação desnecessários:
ALTER ROLE <role_name> NOREPLICATION;
Execute alterações de privilégio somente após confirmar que a função não é necessária para infraestrutura de replicação legítima.
Preste atenção especial a:
SUPERUSER
REPLICATION
LOGIN
CREATEDB
CREATEROLE
Use o princípio do menor privilégio sempre que possível.
Uma implementação conceitual simplificada:
if postgres_version_is_affected:
if role_has_replication:
if not role_is_superuser:
report("POTENCIALMENTE VULNERÁVEL")
else:
report("VERSÃO AFETADA - CONTEXTO DE SUPERUSUÁRIO")
else:
report("VERSÃO AFETADA - REPLICATION NÃO PRESENTE")
else:
report("NÃO AFETADO")
O objetivo do verificador é a identificação de exposição, não a exploração.
| Resultado | Significado |
|---|---|
| 🟢 NÃO AFETADO | O PostgreSQL está executando uma versão corrigida |
| 🟡 ATUALIZAÇÃO NECESSÁRIA | A versão está dentro de uma ramificação afetada |
| 🟠 REPLICATION DETECTADO | A função atual tem capacidade de replicação |
| 🔴 POTENCIALMENTE VULNERÁVEL | Versão afetada + privilégio relevante |
| ⚪ ACESSO INSUFICIENTE | O scanner não pode inspecionar as informações de função necessárias |
REPLICATION. INTERNET
│
▼
┌─────────────┐
│ Firewall │
└──────┬──────┘
│
▼
┌─────────────┐
│ PostgreSQL │
│ Servidor │
└──────┬──────┘
│
┌─────────┴─────────┐
▼ ▼
Menor Privilégio Monitoramento
│ │
▼ ▼
Controles de Função SIEM / Alertas
Restrinja a exposição de rede do PostgreSQL e evite expor serviços de banco de dados diretamente a redes não confiáveis.
Configuração de teste recomendada:
┌───────────────────────────────────┐
│ Rede de Laboratório │
│ Isolada │
│ │
│ ┌────────────┐ ┌────────────┐ │
│ │ Máquina │──▶│ Host de │ │
│ │ Scanner │ │ Teste │ │
│ │ │ │ PostgreSQL │ │
│ └────────────┘ └────────────┘ │
│ │
│ Sem Sistemas de Produção │
└───────────────────────────────────┘
Use uma instalação descartável do PostgreSQL ou um ambiente de laboratório dedicado ao validar ferramentas de segurança.
Este projeto destina-se estritamente à pesquisa de segurança defensiva, avaliação de vulnerabilidades e testes autorizados.
A metodologia incluída foi projetada para identificar instalações PostgreSQL potencialmente vulneráveis sem armar a vulnerabilidade.
Não use este projeto contra sistemas que você não possui ou para os quais não tem autorização explícita para avaliar.
O autor não é responsável por uso indevido, danos, perda de dados, interrupção de serviço ou acesso não autorizado resultante deste projeto.
Pesquisa em Cibersegurança • Análise de Vulnerabilidades • Ferramentas Defensivas
Pesquisar → Verificar → Documentar → Remediar
Contribuições são bem-vindas.
Ao enviar melhorias:
Se este projeto ajudou na sua pesquisa de segurança, considere dar uma ⭐