
# 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.
PostGREShell 🛢️
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