
# Vérificateur de vulnérabilité PostgreSQL non destructif pour CVE-2026-6471 Audite la version du serveur et les privilèges REPLICATION afin d'identifier l'exposition à la faille d'autorisation de décodage logique, avec des recommandations de remédiation.
PostGREShell 🛢️
Un vérificateur de vulnérabilité défensif et non destructif pour CVE-2026-6471
CVE-2026-6471 est une vulnérabilité d'autorisation PostgreSQL impliquant le sous-système de décodage logique (logical decoding).
La vulnérabilité peut permettre à un rôle PostgreSQL disposant du privilège REPLICATION, mais sans privilèges de superutilisateur, d'amener le serveur PostgreSQL à charger une bibliothèque contrôlée par l'attaquant et accessible au compte du système d'exploitation PostgreSQL.
Une exploitation réussie peut entraîner une exécution de code arbitraire avec les privilèges du processus serveur PostgreSQL.
Ce dépôt fournit un PoC de détection sûr conçu pour les évaluations de sécurité autorisées.
⚠️ Aucune bibliothèque partagée malveillante n'est chargée et aucune commande du système d'exploitation n'est exécutée par le vérificateur.
| Propriété | Valeur |
|---|---|
| CVE | CVE-2026-6471 |
| Produit | PostgreSQL |
| Composant | Décodage logique |
| CWE | CWE-862 — Autorisation manquante |
| CVSS v3.1 | 7.2 Élevé |
| Vecteur d'attaque | Réseau |
| Complexité d'attaque | Faible |
| Privilèges requis | Élevé |
| Interaction utilisateur | Aucune |
| Confidentialité | Élevée |
| Intégrité | Élevée |
| Disponibilité | Élevée |
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Dans les conditions vulnérables, un attaquant disposant déjà d'un compte PostgreSQL avec la capacité de réplication requise peut potentiellement franchir la frontière de privilèges entre la base de données et le système d'exploitation.
┌──────────────────────┐
│ PostgreSQL User │
│ REPLICATION = YES │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Logical Decoding │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Missing Authorization│
│ Validation │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Library Loading │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ PostgreSQL OS User │
└──────────────────────┘
L'impact réel dépend fortement des privilèges et des permissions du système de fichiers du compte du système d'exploitation PostgreSQL.
L'avis de sécurité du projet PostgreSQL identifie les branches affectées suivantes :
| Branche | Affectée | Corrigée |
|---|---|---|
| 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 |
Mettez à niveau vers la dernière version de sécurité disponible pour votre branche PostgreSQL.
Ce projet effectue intentionnellement uniquement des vérifications non destructives.
Le vérificateur doit vérifier :
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;
Exemple de sortie :
postgres_version : PostgreSQL 17.x
current_user : security_audit
is_superuser : f
has_replication : t
Une version vulnérable combinée à des privilèges REPLICATION doit être traitée comme nécessitant une remédiation.
Le PoC suit ce flux de travail :
┌───────────────┐
│ PostgreSQL │
│ Connection │
└───────┬───────┘
│
▼
┌─────────────────┐
│ Get Server │
│ Version │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Check Current │
│ Role │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Check │
│ REPLICATION │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Compare Against │
│ Fixed Releases │
└────────┬────────┘
│
┌───────┴────────┐
▼ ▼
Potentially Not
Vulnerable Affected
❌ Charger un .so contrôlé par l'attaquant
❌ Exécuter des charges utiles SQL arbitraires
❌ Exécuter des commandes du système d'exploitation
❌ Lancer un shell inversé
❌ Modifier la configuration PostgreSQL
❌ Modifier le contenu du système de fichiers
❌ Créer une persistance
❌ Exploiter des systèmes de production
Cela rend le vérificateur adapté aux flux de travail d'évaluation de vulnérabilité et d'inventaire contrôlés.
Clonez le dépôt :
git clone https://github.com/<YOUR-USERNAME>/CVE-2026-6471.git
cd CVE-2026-6471
Installez la dépendance Python requise :
python3 -m pip install psycopg2-binary
Exécutez le vérificateur :
python3 CVE-2026-6471.py
Exemple :
╔════════════════════════════════════════════════════╗
║ 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