
Nicht-destruktiver PostgreSQL-Schwachstellenprüfer für CVE-2026-6471. Prüft die Serverversion und REPLICATION-Berechtigungen, um die Anfälligkeit für den Autorisierungsfehler bei der logischen Dekodierung zu identifizieren, mit Anleitung zur Behebung.
PostGREShell 🛢️
Ein defensiver, nicht-destruktiver Schwachstellenprüfer für CVE-2026-6471
CVE-2026-6471 ist eine PostgreSQL-Autorisierungsschwachstelle, die das Logical Decoding-Subsystem betrifft.
Die Schwachstelle kann es einer PostgreSQL-Rolle mit dem REPLICATION-Privileg, aber ohne Superuser-Rechte, ermöglichen, den PostgreSQL-Server zu veranlassen, eine angreiferkontrollierte Bibliothek zu laden, auf die das PostgreSQL-Betriebssystemkonto Zugriff hat.
Eine erfolgreiche Ausnutzung kann zu beliebiger Codeausführung mit den Rechten des PostgreSQL-Serverprozesses führen.
Dieses Repository stellt einen sicheren Erkennungs-PoC bereit, der für autorisierte Sicherheitsbewertungen entwickelt wurde.
⚠️ Es wird keine bösartige Shared Library geladen und kein Betriebssystembefehl vom Prüfer ausgeführt.
| Eigenschaft | Wert |
|---|---|
| CVE | CVE-2026-6471 |
| Produkt | PostgreSQL |
| Komponente | Logical Decoding |
| CWE | CWE-862 — Fehlende Autorisierung |
| CVSS v3.1 | 7.2 Hoch |
| Angriffsvektor | Netzwerk |
| Angriffskomplexität | Niedrig |
| Erforderliche Rechte | Hoch |
| Benutzerinteraktion | Keine |
| Vertraulichkeit | Hoch |
| Integrität | Hoch |
| Verfügbarkeit | Hoch |
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Unter den anfälligen Bedingungen kann ein Angreifer, der bereits über ein PostgreSQL-Konto mit der erforderlichen Replikationsfähigkeit verfügt, möglicherweise die Privilegiengrenze von der Datenbank zum Betriebssystem überschreiten.
┌──────────────────────┐
│ PostgreSQL-Benutzer│
│ REPLICATION = YES │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Logical Decoding │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Fehlende Autorisie- │
│ rungsvalidierung │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Bibliotheksladen │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ PostgreSQL-OS-Benutzer│
└──────────────────────┘
Die tatsächliche Auswirkung hängt stark von den Rechten und Dateisystemberechtigungen des PostgreSQL-Betriebssystemkontos ab.
Das Sicherheitsbulletin des PostgreSQL-Projekts identifiziert die folgenden betroffenen Zweige:
| Zweig | Betroffen | Behoben |
|---|---|---|
| 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 |
Führen Sie ein Upgrade auf die neueste Sicherheitsversion durch, die für Ihren PostgreSQL-Zweig verfügbar ist.
Dieses Projekt führt absichtlich nur nicht-destruktive Prüfungen durch.
Der Prüfer sollte Folgendes verifizieren:
REPLICATION besitztSELECT
version() AS postgres_version,
current_user AS current_user,
rolsuper AS is_superuser,
rolreplication AS has_replication
FROM pg_roles
WHERE rolname = current_user;
Beispielausgabe:
postgres_version : PostgreSQL 17.x
current_user : security_audit
is_superuser : f
has_replication : t
Eine anfällige Version in Kombination mit REPLICATION-Rechten sollte als sanierungsbedürftig behandelt werden.
Der PoC folgt diesem Arbeitsablauf:
┌───────────────┐
│ PostgreSQL │
│ Verbindung │
└───────┬───────┘
│
▼
┌─────────────────┐
│ Serverversion │
│ abrufen │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Aktuelle Rolle │
│ prüfen │
└────────┬────────┘
│
▼
┌─────────────────┐
│ REPLICATION │
│ prüfen │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Mit behobenen │
│ Releases │
│ vergleichen │
└────────┬────────┘
│
┌───────┴────────┐
▼ ▼
Potenziell Nicht
anfällig betroffen
❌ Lädt eine angreiferkontrollierte .so
❌ Führt beliebige SQL-Payloads aus
❌ Führt Betriebssystembefehle aus
❌ Startet eine Reverse Shell
❌ Ändert die PostgreSQL-Konfiguration
❌ Ändert Dateisysteminhalte
❌ Erstellt Persistenz
❌ Nutzt Produktionssysteme aus
Dies macht den Prüfer für kontrollierte Schwachstellenbewertungen und Inventar-Workflows geeignet.
Klonen Sie das Repository:
git clone https://github.com/<YOUR-USERNAME>/CVE-2026-6471.git
cd CVE-2026-6471
Installieren Sie die erforderliche Python-Abhängigkeit:
python3 -m pip install psycopg2-binary
Führen Sie den Prüfer aus:
python3 CVE-2026-6471.py
Beispiel:
╔════════════════════════════════════════════════════╗
║ CVE-2026-6471 SAFE CHECK ║
║ PostgreSQL Logical Decoding Audit ║
╚════════════════════════════════════════════════════╝
[+] Verbinde mit PostgreSQL...
[+] Serverversion : PostgreSQL 17.x
[+] Aktuelle Rolle: security_audit
[+] Superuser : False
[+] Replikation : True
[!] PostgreSQL-Version erfordert Sicherheitsupdate
[!] REPLICATION-Privileg erkannt
[!] POTENZIELL ANFÄLLIG
[!] Führen Sie ein Upgrade von PostgreSQL auf eine behobene Version durch.