Open-Source-Datenbank behebt 12 Jahre alten Fehler im Replikationscode

Open-Source-Datenbank behebt 12 Jahre alten Fehler im Replikationscode

Updates für die Open-Source-Datenbank schließen CVE-2026-6471, einen seit 2014 bestehenden logischen Dekodierungsfehler, der es Konten mit Replikationsrolle ermöglichen könnte, Code als Datenbank-Server-Benutzer auszuführen.

Die Open-Source-Datenbank hat neue Updates veröffentlicht, um eine Schwachstelle in ihrer logischen Dekodierungsfunktion zu schließen, die es einem Datenbankkonto mit Replikationsrechten ermöglichen könnte, beliebigen Code als Betriebssystembenutzer auszuführen, der den Datenbankserver betreibt. Der Fehler, verfolgt als CVE-2026-6471 mit einem CVSS-Score von 7,2, existiert seit der Einführung der logischen Dekodierung in Version 9.4 dieser Datenbank im Jahr 2014 und ist damit etwa zwölf Jahre alt. Alle Versionen vor den neuesten Releases 18.6, 17.11, 16.15, 15.19 und 14.24 sind betroffen. Für eine Ausnutzung sind zwei Bedingungen erforderlich: ein Konto mit dem REPLICATION-Attribut und ein Server, der mit wal_level = logical läuft. Backup-Tools, Standby-Server, Change-Data-Capture-Pipelines (CDC) und Überwachungssysteme besitzen routinemäßig dieses Attribut, sodass die praktische Gefährdung viele Produktionsumgebungen erreichen kann.

Logische Dekodierung ist eine Funktion der Open-Source-Datenbank, die die interne Aufzeichnung von Datenbankänderungen in einen lesbaren Stream umwandelt, den Tools wie Backup-Software und Datenreplikationssysteme konsumieren können. Das Update, das am 13. August veröffentlicht wurde, fügt einen neuen Serverparameter namens output_plugin_libraries hinzu. Dieser Parameter ist eine Whitelist von Bibliotheken, die als logische Dekodierungs-Output-Plugins geladen werden dürfen, und standardmäßig sind das eingebaute Output-Plugin und das eingebaute Test-Dekodierungs-Plugin enthalten. Installationen, die andere Output-Plugins verwenden, einschließlich wal2json und decoderbufs, werden nach dem Update die logische Dekodierung verweigern, bis ein Administrator die Bibliothek zur Liste hinzufügt und die Serverkonfiguration neu lädt. Das Projekt hinter der Open-Source-Datenbank erklärte in den Versionshinweisen zu 18.6, dass ein Replikationsbenutzer zuvor jede ladbare Bibliothek für die logische Dekodierung auswählen konnte, was verschiedene Exploits ermöglichte, und die neue Whitelist schließt dies ab, ohne funktionierende Setups zu brechen.

Das Projekt hinter der Open-Source-Datenbank schrieb Vladimir Tokarev und Yu Kunpeng die Meldung des Problems zu. Tokarev veröffentlichte am 1. September einen detaillierten Bericht für das Datensicherheitsunternehmen Cyera Research, der den Fehler PostGREShell nennt. Cyera erklärte, dass der Plugin-Name, der beim Erstellen eines Replikations-Slots angegeben wird, direkt an die Funktion übergeben wird, die die Bibliothek lädt. Die bestehende Einschränkung der Datenbank für Plugin-Pfade, die Nicht-Superuser auf ein einziges administrator-kontrolliertes Verzeichnis beschränkt, wird auf dem Replikationspfad nie aufgerufen. Darüber hinaus akzeptiert der Parser des Replikationsprotokolls fast jedes Zeichen innerhalb eines in doppelten Anführungszeichen gesetzten Plugin-Namens, einschließlich Pfadtrennzeichen und ../-Traversal, sodass ein vollständiger Dateisystempfad wie eingegeben den Loader erreicht. Auf Windows löst der Server einen Netzwerkpfad über Server Message Block (SMB) auf und holt die Bibliothek von einem vom Angreifer kontrollierten Rechner, ohne etwas auf dem Ziel zu schreiben, sagte Cyera. Auf Linux und macOS erfordert dasselbe Ergebnis die Aktivierung von Network File System (NFS)-Automounting. Überall sonst benötigt der Angreifer eine bestehende Möglichkeit, eine Datei auf die Festplatte des Servers zu schreiben. Code, der auf diese Weise geladen wird, läuft im Datenbank-Backend-Prozess als Betriebssystembenutzer, der den Datenbankserver betreibt.

Cyeras Test-Plugin schrieb dann das Rollenkatalog direkt, um das Replikationskonto zu einem Superuser der Open-Source-Datenbank zu machen, einem Konto mit Administratorrechten. Es richtete auch drei Persistenzmechanismen ein, die einen Serverneustart überleben. Cyera beschreibt das REPLICATION-Attribut als Backup-Anmeldedaten mit geringen Rechten, aber die Open-Source-Datenbank bewertete den Fehler mit Privileges Required auf High, eine Bewertung, die auch in SUEs eigener Einschätzung reproduziert wurde. Das Projekt lehnte es ab, seine bestehende LOAD-Einschränkung auf den Replikationspfad anzuwenden. Jacob Champion, der den Fix schrieb, erklärte in der Commit-Nachricht, dass REPLICATION-Benutzer zuvor keinen Einschränkungen für Output-Plugin-Pfade unterlagen, sodass sie LOAD-Zeitschutzmaßnahmen während der logischen Dekodierung umgehen konnten. Die Hinzufügung der standardmäßigen LOAD-Einschränkungen würde nun rückwirkend erfordern, dass alle Drittanbieter-Output-Plugins im Plugin-Verzeichnis installiert werden, was bestehende Setups brechen würde. Fehlgeschlagene Ladevorgänge werden im Serverprotokoll mit einer Meldung aufgezeichnet, dass die Bibliothek möglicherweise nicht als Output-Plugin verwendet werden darf, mit einem Hinweis, der die Einstellung nennt, gemäß der Dokumentation des Parameters.

Administratoren wird geraten, den Replikations-Slot-Katalog abzufragen, um die derzeit verwendeten Output-Plugins aufzulisten, was nur Plugins zeigt, die zu einem bestimmten Zeitpunkt erfolgreich verwendet wurden. Sie sollten dann auf 18.6, 17.11, 16.15, 15.19 oder 14.24 aktualisieren oder auf das entsprechende Distributionspaket. Jedes nicht standardmäßige Plugin muss zu output_plugin_libraries hinzugefügt und die Konfiguration mit dem Standard-Steuerbefehl oder der Konfigurations-Neuladefunktion neu geladen werden. Ein Neustart ist nicht erforderlich. Bei der Migration von Version 17 oder höher sollte output_plugin_libraries des neuen Clusters gesetzt werden, bevor der Prüfmodus des Upgrade-Dienstprogramms ausgeführt wird, da die Prüfung fehlschlägt, wenn die Liste die Slot-Plugins des alten Clusters nicht zulässt. Behobene Pakete sind auf Amazon RDS für alle fünf Zweige verfügbar, sowie von Debian, SUSE und Ubuntu. Das Advisory des Projekts deckt die unterstützten Zweige 14 bis 18 ab und adressiert keine früheren. Version 14 erhält keine Fixes mehr ab dem 12. November 2026, sagte das Projekt in seiner Release-Ankündigung.

Der Upstream-Fix „erfordert zusätzliche Änderungen an der Konfiguration, wenn einige Erweiterungen verwendet werden“, warnt das Advisory von Debian und nennt seine wal2json- und decoderbufs-Pakete. Ubuntu USN-8653-1, das den Fix für 22.04, 24.04 und 26.04 LTS am 20. August auslieferte, erwähnt den Parameter nicht und sagt Administratoren nur, den Datenbankserver nach dem Update neu zu starten. Stand 4. September hatte das wal2json-Projekt seine Dokumentation aktualisiert, um Benutzern zu sagen, das Plugin zu output_plugin_libraries hinzuzufügen, unter Berufung auf die CVE. Eine Lücke im Fix ist noch offen. Das Abonnement-Erstellungsdienstprogramm erstellt Replikations-Slots mit dem eingebauten Output-Plugin, ohne den neuen Parameter zu überprüfen, sodass ein Trockenlauf erfolgreich ist und die Konvertierung dann fehlschlägt. Hayato Kuroda von Fujitsu erklärte auf der Entwicklungs-Mailingliste, dass der Befehl Replikations-Slots mit dem eingebauten Output-Plugin erstellt, ohne die Konfigurationseinstellung zu überprüfen, was bedeutet, dass, wenn der Plugin-Name nicht im Parameter angegeben ist, der Trockenlaufmodus besteht, aber die tatsächliche Konvertierung fehlschlägt, was für Benutzer überraschend ist und vermieden werden sollte. Ein Patch war in Überprüfung und wurde bis zum 4. September nicht committet. CVE-2026-6471 blieb bis zum 4. September im Katalog der Known Exploited Vulnerabilities (KEV) von CISA abwesend, und The Hacker News fand am selben Tag keinen Proof-of-Concept-Code in öffentlichen Repositories.

Bis das Update angewendet werden kann, sagte Cyera, kann die Gefährdung reduziert werden, indem das REPLICATION-Attribut von Konten entfernt wird, die es nicht benötigen, Replikationseinträge in der hostbasierten Authentifizierungskonfigurationsdatei auf bekannte Adressen beschränkt werden, ausgehender SMB- (Port 445) und NFS- (Port 2049) Verkehr von Datenbankservern blockiert wird und autofs deaktiviert wird, wo es nicht benötigt wird. Für Teams, die Dienste betreiben, die auf dieser Open-Source-Datenbank basieren, bietet AEU-I sicherheitsorientierte IT-, Infrastruktur- und Beratungsdienste, die helfen können, Servereinstellungen zu überprüfen und Updates wie dieses zu koordinieren.

So schützen Sie sich

  1. Wenn Ihre Website oder Ihr Unternehmen die Open-Source-Datenbank verwendet, bitten Sie Ihren Hosting-Anbieter oder Ihr IT-Team, das neueste Sicherheitsupdate dafür sofort zu installieren.
  2. Bitten Sie Ihren Datenbankadministrator, das Replikationsprivileg von jedem Konto zu entfernen, das es nicht wirklich benötigt.
  3. Lassen Sie nach dem Update Ihren Administrator überprüfen, dass spezielle Replikations-Plugins wie wal2json oder decoderbufs weiterhin erlaubt sind und Backups weiterhin funktionieren.
  4. Wenn Sie den Server selbst verwalten, beschränken Sie Replikationsverbindungen auf bekannte Adressen und deaktivieren Sie Dateifreigabefunktionen, die Sie nicht verwenden.
  5. Achten Sie nach dem Update auf ungewöhnliche Datenbank-Fehlermeldungen über Output-Plugins und kontaktieren Sie den Support, wenn die Replikation stoppt.

Schwachstellen & Lösungen

  • CVE-2026-6471 Open-source database logical decoding output plugin directory traversal flaw allowing replication-role code execution; fixed in open-source database 18.6, 17.11, 16.15, 15.19, and 14.24. Lösung & Details ansehen →

Begriffe Erklärt

  • open-source database Ein Open-Source-Datenbanksystem zur Speicherung und Verwaltung von Website- und Anwendungsdaten.
  • logical decoding Eine Funktion der Open-Source-Datenbank, die Datenbankänderungen in einen lesbaren Stream umwandelt, damit Tools sie kopieren oder verfolgen können.
  • output plugin Eine Zusatzsoftware, die den Stream der Datenbankänderungen für ein bestimmtes Tool formatiert.
  • REPLICATION attribute Eine Datenbankberechtigung, die es einem Konto erlaubt, Datenbankänderungen zu lesen und zu kopieren, oft von Backup-Tools verwendet.
  • host-based authentication configuration file Die Konfigurationsdatei der Open-Source-Datenbank, die steuert, welche Computer und Konten sich mit der Datenbank verbinden dürfen.
  • SMB Server Message Block, ein Netzwerk-Dateifreigabeprotokoll, das hauptsächlich von Windows-Computern verwendet wird.
  • NFS Network File System, eine Möglichkeit für Computer, Ordner über ein Netzwerk gemeinsam zu nutzen.
  • superuser Ein Datenbankkonto mit Administratorrechten, das alles auf dem System tun kann.

Verwandte AEU-Dienste

  • AEU DNS Verschlüsselter DNS-Resolver