
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.
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.

Administratoren können Rollen mit aktivierter Replikation wie folgt überprüfen:
SELECT
rolname,
rolsuper,
rolreplication
FROM pg_roles
WHERE rolreplication = true;
Überprüfen Sie jedes zurückgegebene Konto.
Wenn ein Konto keine Replikationsrechte benötigt, entfernen Sie unnötige Rechte gemäß Ihren betrieblichen Anforderungen.
Installieren Sie die entsprechende behobene Version:
14.24+
15.19+
16.15+
17.11+
18.6+
Bevorzugen Sie die neueste verfügbare PostgreSQL-Sicherheitsversion, anstatt bei der minimalen behobenen Version stehen zu bleiben.
Identifizieren Sie Konten mit Replikationsfähigkeit:
SELECT
rolname,
rolreplication
FROM pg_roles
WHERE rolreplication = true;
Entfernen Sie unnötige Replikationsrechte:
ALTER ROLE <role_name> NOREPLICATION;
Führen Sie Rechteänderungen nur durch, nachdem Sie bestätigt haben, dass die Rolle nicht für eine legitime Replikationsinfrastruktur erforderlich ist.
Achten Sie besonders auf:
SUPERUSER
REPLICATION
LOGIN
CREATEDB
CREATEROLE
Verwenden Sie wo immer möglich das Prinzip der geringsten Rechte.
Eine vereinfachte konzeptionelle Implementierung:
if postgres_version_is_affected:
if role_has_replication:
if not role_is_superuser:
report("POTENTIELL ANFÄLLIG")
else:
report("BETROFFENE VERSION - SUPERUSER-KONTEXT")
else:
report("BETROFFENE VERSION - REPLICATION NICHT VORHANDEN")
else:
report("NICHT BETROFFEN")
Der Zweck des Prüfers ist die Identifizierung der Gefährdung, nicht die Ausnutzung.
| Ergebnis | Bedeutung |
|---|---|
| 🟢 NICHT BETROFFEN | PostgreSQL führt eine behobene Version aus |
| 🟡 UPDATE ERFORDERLICH | Version liegt innerhalb eines betroffenen Zweigs |
| 🟠 REPLICATION ERKANNT | Aktuelle Rolle besitzt Replikationsfähigkeit |
| 🔴 POTENZIELL ANFÄLLIG | Betroffene Version + relevantes Privileg |
| ⚪ UNZUREICHENDER ZUGRIFF | Scanner kann erforderliche Rolleninformationen nicht prüfen |
REPLICATION-Rollen prüfen. INTERNET
│
▼
┌─────────────┐
│ Firewall │
└──────┬──────┘
│
▼
┌─────────────┐
│ PostgreSQL │
│ Server │
└──────┬──────┘
│
┌─────────┴─────────┐
▼ ▼
Geringste Rechte Überwachung
│ │
▼ ▼
Rollenkontrollen SIEM / Alerts
Beschränken Sie die Netzwerkexposition von PostgreSQL und vermeiden Sie es, Datenbankdienste direkt ungeschützten Netzwerken auszusetzen.
Empfohlener Testaufbau:
┌───────────────────────────────────┐
│ Isoliertes Labor-Netzwerk │
│ │
│ ┌────────────┐ ┌────────────┐ │
│ │ Scanner- │──▶│ PostgreSQL │ │
│ │ Maschine │ │ Test-Host │ │
│ └────────────┘ └────────────┘ │
│ │
│ Keine Produktionssysteme │
└───────────────────────────────────┘
Verwenden Sie eine Wegwerf-PostgreSQL-Installation oder eine dedizierte Laborumgebung, wenn Sie Sicherheitswerkzeuge validieren.
Dieses Projekt ist ausschließlich für defensive Sicherheitsforschung, Schwachstellenbewertung und autorisierte Tests bestimmt.
Die enthaltene Methodik soll potenziell anfällige PostgreSQL-Installationen identifizieren, ohne die Schwachstelle zu bewaffnen.
Verwenden Sie dieses Projekt nicht gegen Systeme, die Sie nicht besitzen oder für deren Bewertung Sie keine ausdrückliche Genehmigung haben.
Der Autor ist nicht verantwortlich für Missbrauch, Schäden, Datenverlust, Dienstunterbrechungen oder unbefugten Zugriff, die aus diesem Projekt resultieren.
Cybersicherheitsforschung • Schwachstellenanalyse • Defensive Werkzeuge
Forschung → Verifizieren → Dokumentieren → Beheben
Beiträge sind willkommen.
Wenn Sie Verbesserungen einreichen:
Wenn dieses Projekt Ihrer Sicherheitsforschung geholfen hat, erwägen Sie, ihm einen ⭐ zu geben