PostgreSQL's 12-Jährige PostGREShell-Schwachstelle Macht Replikation zur RCE
Zwölf Jahre. So lange steckte CVE-2026-6471, inzwischen unter dem Namen PostGREShell bekannt, im Logical-Decoding-Pfad von PostgreSQL, bevor Cyera Research die Schwachstelle aufdeckte und meldete. Die gepatchten Branches umfassen fünf Major-Versionen (18.6, 17.11, 16.15, 15.19, 14.24) – ein deutlicher Hinweis darauf, wie viel der produktiv eingesetzten Postgres-Flotte theoretisch betroffen ist: im Wesentlichen jede Produktionsinstanz, die seit dem 9.4-Release von 2014 Logical Replication verwendet.
Das Unangenehme ist nicht das Alter. Es ist das Privileglevel. Das hier ist kein Superuser-Bug. Ein Nicht-Superuser-Konto mit dem REPLICATION-Attribut – die Art von Rolle, die man einem Backup-Agenten oder einer CDC-Pipeline übergibt – reicht aus, um Code-Ausführung als Postgres-OS-Prozess zu erlangen.
Was Passiert Ist
Am 7. September 2026 veröffentlichte das PostgreSQL-Projekt, wie CyberSecurityNews berichtete, Fixes für CVE-2026-6471 über alle unterstützten Branches hinweg. Die von Cyera Research entdeckte Schwachstelle liegt im Logical-Decoding-Subsystem und geht auf unzureichende Bibliothekspfad-Einschränkungen im Logical-Replication-Workflow zurück. In betroffenen Versionen validierte PostgreSQL den als Output-Plugin-Name übergebenen Bibliothekspfad nicht korrekt, wenn ein Replikations-Client diesen anforderte.
Die praktische Konsequenz: Ein Konto mit dem REPLICATION-Attribut (kein Superuser erforderlich) kann PostgreSQL auf eine angreiferkontrollierte Shared Library verweisen, die vom OS-Konto des Servers erreichbar ist. PostgreSQL übergibt diesen Pfad dann an den nativen Bibliotheks-Loader der Plattform – dlopen() auf Linux und macOS, LoadLibrary() auf Windows – und führt den Code mit den Berechtigungen des Datenbankserverprozesses aus.
Der Fix ist in PostgreSQL 18.6, 17.11, 16.15, 15.19 und 14.24 enthalten. Alles Ältere auf diesen Branches ist verwundbar. Der Bericht führt die Ursache auf das 9.4-Release von 2014 zurück, das Logical Decoding als erstklassiges Feature einführte. Das sind ungefähr zwölf Jahre ausgelieferter Code, in denen eine authentifizierte Replikationsrolle prinzipiell eine Shell hätte erlangen können.
Was die Quelle nicht offenbart – und das ist bedeutsam –, ist, ob Cyera oder das Postgres-Sicherheitsteam eine Ausnutzung vor der Veröffentlichung beobachtet hat. Die Exploitierungs-Timeline ist noch unbekannt, aber die Obergrenze des Entdeckungs-bis-Offenlegungs-Risikos ist durch das Patch-Datum begrenzt: Jede Organisation, die Versuche zur Erstellung von Replikations-Slots protokolliert, sollte rückwirkend die letzten 30 bis 90 Tage der Aktivität prüfen, um eine Untergrenze für die eigene Umgebung festzustellen.
Technische Analyse
Um zu verstehen, warum dieser Bug so lange überlebt hat, lohnt es sich, den tatsächlichen Code-Pfad zu betrachten. Logical Decoding ermöglicht es externen Tools, Datenbankänderungen aus dem Write-Ahead-Log von PostgreSQL zu lesen. Anstatt rohe WAL-Bytes an ein physisches Replikat zu senden, leitet Logical Decoding das WAL durch ein Output-Plugin – eine Shared Library, die jede Änderung in das vom Consumer erwartete Format bringt: JSON für Debezium-artiges CDC, Protobuf für eine benutzerdefinierte Pipeline, test_decoding zum Debuggen, pgoutput für native Logical Replication.
Wenn ein Replikations-Client Postgres auffordert, einen Logical-Replication-Slot zu erstellen, benennt er das Output-Plugin. Der Server lädt dieses Plugin dann über den OS-Bibliotheks-Loader. Im verwundbaren Code wurde der Plugin-Name ohne ordnungsgemäße Einschränkung auf das erwartete Plugin-Verzeichnis an den Loader übergeben. Gibt man einen Pfad an, der auf eine angreiferkontrollierte .so- oder .dll-Datei zeigt, lädt der Server diese pflichtbewusst und führt ihren Konstruktor aus.
Die interessante Eigenschaft hierbei ist die Umkehrung des Vertrauensmodells. Historisch gesehen wurde das REPLICATION-Attribut als Privileg niedrigerer Stufe als SUPERUSER behandelt: Es erlaubt das Streamen von WAL, aber nicht das Ausführen beliebiger SQL als Datenbankbesitzer. Einem Backup-Dienst oder einem Debezium-Connector eine REPLICATION-Rolle zu geben, schien genau deshalb sicher, weil die Angriffsfläche angeblich schmal sein sollte. CVE-2026-6471 hebt diese Unterscheidung auf. Sobald man ein Output-Plugin benennen kann und der Server dlopen() mit jedem angegebenen Pfad aufruft, ist REPLICATION funktional äquivalent zur Code-Ausführung als postgres-OS-Benutzer.
Der Angreifer benötigt noch zwei Voraussetzungen. Erstens: gültige Anmeldedaten für eine Rolle mit REPLICATION. Zweitens: einen Weg, eine Datei an einem Pfad zu platzieren, den der postgres-Prozess lesen kann. Diese zweite Anforderung macht SMB- und NFS-Mounts interessant: Ein gemeinsam genutztes Dateisystem, ein beschreibbares Temp-Verzeichnis oder ein vergifteter Paket-Cache können sie alle erfüllen. Deshalb betont die Offenlegung ausdrücklich die Einschränkung von ausgehendem SMB- und NFS-Datenverkehr von Datenbankservern – Remote-UNC-Pfade auf Windows und Netzwerk-Mounts auf Linux erweitern die Exploit-Oberfläche erheblich.
Wer Betroffen Ist
Jeder, der Debezium, Kafka Connect JDBC-Sinks mit Logical Replication, AWS DMS gegen selbstverwaltetes Postgres, pglogical, Airbytes Postgres-Quelle, Fivetran oder eine selbst entwickelte CDC-Pipeline betreibt, ist nun im Scope. Ebenso jedes Backup-Tool, das eine REPLICATION-Rolle statt pg_dump verwendet. Multipliziert man das mit zwölf Jahren ausgelieferter Versionen, ist die Angriffsfläche enorm.
Die vertikale Aufschlüsselung ist wichtig. Fintech- und iGaming-Plattformen betreiben häufig umfangreiches CDC in Analytics-Warehouses und Fraud-Pipelines: Das sind genau die Umgebungen, in denen ein Dutzend Microservices REPLICATION-attributierte Credentials in verschiedenen Vaults, Config Maps und (bedauerlicherweise) Environment-Dateien halten. Ad-tech und Krypto-Börsen nutzen häufig Logical Replication für Echtzeit-Dashboards. Enterprise-Infrastrukturteams tragen das Schlimmste: Multi-Tenant-Postgres-Umgebungen, bei denen der Blast Radius einer kompromittierten Replikations-Credential nun Shell-Zugriff auf den Host einschließt.
Managed Services verkomplizieren das Bild. RDS, Aurora, Cloud SQL und Azure Database for PostgreSQL bieten kundenerstellten Rollen alle Logical Replication an. Die Quelle gibt nicht an, welche verwalteten Angebote bereits gepatcht haben – das ist eine der folgenreicheren Unbekannten für die nächsten zwei Wochen. Die vernünftige Einschätzung: Anbieter auf 16.x- oder 15.x-Branches liefern Sicherheits-Patches typischerweise innerhalb von 7 bis 21 Tagen nach dem Upstream-Release, also sind Provider-Advisories bis Ende September zu erwarten.
Das 90-Tage-Bild für betroffene Teams sieht so aus: Woche eins: Notfall-Patching auf selbstverwalteten Instanzen, Audit der REPLICATION-Rolleninhaber, Rotation aller Credentials, die einen ungepatchten Host berührt haben. Wochen zwei bis vier: Durchsuchen von Logs nach verdächtiger Slot-Erstellung. Monate zwei und drei: Architekturüberprüfung, wer tatsächlich REPLICATION benötigt und ob pg_hba.conf echte Arbeit leistet oder mit 0.0.0.0/0 am Ende nur ein Gummistempel ist.
Playbook für Engineering-Teams
Erst patchen, dann diskutieren. Wechsel zu 18.6, 17.11, 16.15, 15.19 oder 14.24 je nach Branch. Wer auf einer Version älter als 14 ist: Dieser Bug ist einer von mehreren Gründen, warum ein Upgrade längst fällig war.
Zweitens: Die Abfrage ausführen. Alle Rollen mit dem REPLICATION-Attribut auflisten (SELECT rolname FROM pg_roles WHERE rolreplication) und abgleichen, was es tatsächlich benötigt. Backup-Tooling mit pg_basebackup schon. Ein Reporting-Benutzer nicht. Das Attribut überall entfernen, wo es nicht zwingend erforderlich ist.
Drittens: pg_hba.conf verschärfen. Replikationsverbindungen sollten auf bestimmte Quell-IPs oder CIDR-Bereiche beschränkt sein, keine hostweiten Catch-alls. Wenn die Replikations-Clients in einem bekannten Subnetz liegen, das entsprechend eintragen.
Viertens: Suchen. Logical-Replication-Aktivität auf Slot-Erstellungsversuche mit verdächtigen Plugin-Namen überprüfen: alles, was Dateisystempfade, Path-Traversal-Sequenzen oder Bibliotheksnamen enthält, die nicht im bekannten Set sind (pgoutput, wal2json, test_decoding und was der eigene Stack tatsächlich verwendet). Dazu einen dauerhaften Alert einrichten.
Fünftens: Ausgehenden SMB- und NFS-Verkehr von Datenbankservern sperren, sofern kein dokumentierter Grund vorliegt. Das schließt den Remote-Bibliotheks-Liefervektor auch für zukünftige Varianten.
Meine überprüfbare Prognose: Wenn das Patchen so schleppend verläuft wie typischerweise bei Datenbank-CVEs, sollten wir innerhalb von 60 Tagen den ersten öffentlichen Exploitation-Bericht gegen eine selbstverwaltete Postgres-Umgebung sehen – und mindestens einen Incident-Writeup bis Ende Q1 2027, der eine kompromittierte CDC-Credential als initialen Angriffsvektor nennt. Sollte das nicht eintreten, ist der Exploit entweder schwerer zu weaponisieren als der Writeup vermuten lässt, oder die Verteidiger haben sich ungewöhnlich schnell bewegt. Beides ist aufschlussreich.
Wichtigste Erkenntnisse
- CVE-2026-6471 (PostGREShell) gibt Nicht-Superuser-REPLICATION-Konten einen Weg zur Code-Ausführung als Postgres-OS-Prozess und hebt eine Vertrauensgrenze auf, die seit 2014 als sicher galt.
- Gepatchte Versionen sind 18.6, 17.11, 16.15, 15.19 und 14.24. Alles Frühere auf diesen Branches ist verwundbar.
- Die Grundursache liegt in unzureichender Bibliothekspfad-Validierung, wenn Logical Decoding ein Output-Plugin über dlopen() oder LoadLibrary() lädt.
- Die unbekannte Variable: ob Ausnutzung der Offenlegung vorausging. Die Slot-Erstellungshistorie der letzten 30 bis 90 Tage prüfen, um die eigene Untergrenze zu ermitteln.
- Über das Patchen hinaus: REPLICATION von Rollen entfernen, die es nicht benötigen, Replikationsverbindungen in pg_hba.conf einschränken und ausgehenden SMB/NFS-Verkehr von Datenbankservern blockieren.
Häufig Gestellte Fragen
F: Erfordert CVE-2026-6471 Superuser-Zugriff zur Ausnutzung?
Nein. Das ist das Beunruhigende daran. Jedes Nicht-Superuser-Konto mit dem REPLICATION-Attribut kann die Schwachstelle auslösen. Diese Rollen werden häufig an Backup-Tools, CDC-Pipelines und Replikations-Setup-Skripte vergeben, sodass die Anzahl ausnutzbarer Credentials in den meisten Umgebungen größer ist, als Teams zunächst annehmen.
F: Welche PostgreSQL-Versionen sind gepatcht?
PostgreSQL 18.6, 17.11, 16.15, 15.19 und 14.24 enthalten den Fix. Jedes Release auf diesen Branches, das älter als diese Nummern ist, ist verwundbar – und die Ursache geht bis auf das 9.4-Release von 2014 zurück, sodass auch ältere, nicht mehr unterstützte Versionen betroffen sind.
F: Wie lässt sich das Risiko vor dem Patchen am schnellsten reduzieren?
Alle Rollen mit dem REPLICATION-Attribut auditieren und das Privileg entfernen, wo es nicht zwingend erforderlich ist. Dann pg_hba.conf verschärfen, sodass Replikationsverbindungen auf bekannte Quell-IPs beschränkt sind, und ausgehenden SMB- sowie NFS-Verkehr von Datenbankservern blockieren, um den Remote-Bibliotheks-Liefervektor zu schließen.
DeepSeek stellt 150 Backend-Ingenieure ein, um seine Infrastruktur zu retten
DeepSeek stellt 150 Senior-Backend-Ingenieure ein, um seine Kerninfrastruktur neu zu schreiben. Diese Zahl verrät mehr über KI-Agenten-Ökonomie als jeder Produktlaunch.
Cloud Network Specialist: Der Klempner, den jeder Cloud-Stack braucht
Cloud Network Specialists sind die Klempner des modernen Stacks: unsichtbar, wenn alles läuft – katastrophal, wenn nicht. Die Nachfrage steigt rasant, und das Aufgabenfeld wächst ständig.
Digitain treibt den Start von LuckyBet.ee in Estland mit EMTA-Lizenz voran
Digitain stattet LuckyBet.ee mit einem vollständigen Turnkey-Sportsbook aus, während der baltische Betreiber seine EMTA-Lizenz erhält und die nordischen Märkte ins Visier nimmt.




