
# Checker non distruttivo delle vulnerabilità PostgreSQL per CVE-2026-6471 Audit della versione del server e dei privilegi REPLICATION per identificare l'esposizione al difetto di autorizzazione del logical decoding, con indicazioni di rimedio.
PostGREShell 🛢️
Uno strumento di verifica difensivo e non distruttivo per CVE-2026-6471
CVE-2026-6471 è una vulnerabilità di autorizzazione di PostgreSQL che coinvolge il sottosistema di decodifica logica (logical decoding).
La vulnerabilità può consentire a un ruolo PostgreSQL in possesso del privilegio REPLICATION, ma privo dei privilegi di superutente, di indurre il server PostgreSQL a caricare una libreria controllata dall'attaccante accessibile all'account del sistema operativo di PostgreSQL.
Lo sfruttamento riuscito può comportare l'esecuzione di codice arbitrario con i privilegi del processo del server PostgreSQL.
Questo repository fornisce un PoC di rilevamento sicuro progettato per valutazioni di sicurezza autorizzate.
⚠️ Nessuna libreria condivisa dannosa viene caricata e nessun comando del sistema operativo viene eseguito dal verificatore.
| Proprietà | Valore |
|---|---|
| CVE | CVE-2026-6471 |
| Prodotto | PostgreSQL |
| Componente | Decodifica Logica |
| CWE | CWE-862 — Autorizzazione Mancante |
| CVSS v3.1 | 7.2 Alto |
| Vettore di Attacco | Rete |
| Complessità di Attacco | Bassa |
| Privilegi Richiesti | Alti |
| Interazione Utente | Nessuna |
| Riservatezza | Alta |
| Integrità | Alta |
| Disponibilità | Alta |
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Nelle condizioni vulnerabili, un attaccante che possiede già un account PostgreSQL con la capacità di replica richiesta potrebbe potenzialmente superare il confine di privilegi database-sistema operativo.
┌──────────────────────┐
│ PostgreSQL User │
│ REPLICATION = YES │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Logical Decoding │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Missing Authorization│
│ Validation │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Library Loading │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ PostgreSQL OS User │
└──────────────────────┘
L'impatto effettivo dipende fortemente dai privilegi e dai permessi del filesystem dell'account del sistema operativo di PostgreSQL.
L'avviso di sicurezza del progetto PostgreSQL identifica i seguenti rami interessati:
| Ramo | Interessato | Corretto |
|---|---|---|
| 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 |
Aggiornare all'ultima release di sicurezza disponibile per il proprio ramo PostgreSQL.
Questo progetto esegue intenzionalmente solo controlli non distruttivi.
Il verificatore dovrebbe controllare:
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;
Output di esempio:
postgres_version : PostgreSQL 17.x
current_user : security_audit
is_superuser : f
has_replication : t
Una versione vulnerabile combinata con privilegi REPLICATION dovrebbe essere trattata come bisognosa di rimedio.
Il PoC segue questo flusso di lavoro:
┌───────────────┐
│ PostgreSQL │
│ Connection │
└───────┬───────┘
│
▼
┌─────────────────┐
│ Get Server │
│ Version │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Check Current │
│ Role │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Check │
│ REPLICATION │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Compare Against │
│ Fixed Releases │
└────────┬────────┘
│
┌───────┴────────┐
▼ ▼
Potentially Not
Vulnerable Affected
❌ Caricare una .so controllata dall'attaccante
❌ Eseguire payload SQL arbitrari
❌ Eseguire comandi del sistema operativo
❌ Aprire una reverse shell
❌ Modificare la configurazione di PostgreSQL
❌ Modificare il contenuto del filesystem
❌ Creare persistenza
❌ Sfruttare sistemi di produzione
Questo rende il verificatore adatto a valutazioni di vulnerabilità controllate e a flussi di lavoro di inventario.
Clonare il repository:
git clone https://github.com/<YOUR-USERNAME>/CVE-2026-6471.git
cd CVE-2026-6471
Installare la dipendenza Python richiesta:
python3 -m pip install psycopg2-binary
Eseguire il verificatore:
python3 CVE-2026-6471.py
Esempio:
╔════════════════════════════════════════════════════╗
║ CVE-2026-6471 SAFE CHECK ║
║ PostgreSQL Logical Decoding Audit ║
╚════════════════════════════════════════════════════╝
[+] Connecting to PostgreSQL...
[+] Server version : PostgreSQL 17.x
[+] Current role : security_audit
[+] Superuser : False
[+] Replication : True
[!] PostgreSQL version requires security update
[!] REPLICATION privilege detected
[!] POTENTIALLY VULNERABLE
[!] Upgrade PostgreSQL to a fixed release.