#Homelab · 4 Min. Lesezeit · Tim Rinkel

ADMIN OHNE PASSWORT! pgAdmin4 ließ sich per HTTP-Header als Chef einloggen — Update auf 9.18 Pflicht

ADMIN OHNE PASSWORT! pgAdmin4 ließ sich per HTTP-Header als Chef einloggen — Update auf 9.18 Pflicht

pgAdmin4 ist für viele Selfhoster und kleine Teams das naheliegende Werkzeug, um eine eigene PostgreSQL-Datenbank über eine grafische Oberfläche zu verwalten, statt jede Abfrage auf der Kommandozeile zu tippen. Wer dabei den sogenannten Webserver-Authentifizierungsmodus nutzt, sollte jetzt genau hinschauen: Die am 17. September veröffentlichte Version 9.18 schließt eine Lücke, die Angreifern die komplette Admin-Oberfläche ohne ein einziges Passwort geöffnet hätte.

WAS DER WEBSERVER-MODUS EIGENTLICH SOLL

Im Webserver-Authentifizierungsmodus verlässt sich pgAdmin4 darauf, dass ein vorgeschalteter Webserver oder Reverse-Proxy die Identität eines Nutzers bereits geprüft hat, und übernimmt diese Identität einfach aus einer Umgebungsvariable — praktisch für Setups mit Single-Sign-On, bei denen sich niemand ein zweites Mal bei pgAdmin selbst anmelden soll. Genau dieses Vertrauen wurde pgAdmin4 nun zum Verhängnis.

DIE LÜCKE: CVE-2026-86863, CVSS 9,8

Die Funktion WebserverAuthentication.get_user() sollte den Nutzernamen ausschließlich aus einer serverseitig gesetzten Umgebungsvariable lesen. Fand sie dort nichts, fiel der Code aber auf einen zweiten Weg zurück: Er las denselben Namen einfach direkt aus einem eingehenden HTTP-Header — und einen HTTP-Header schreibt bekanntlich der Client, der die Anfrage schickt, nicht der Server. Jeder, der pgAdmin4 erreichen konnte, durfte sich damit selbst den gewünschten Nutzernamen aussuchen, inklusive eines bereits bestehenden Administrator-Kontos — ganz ohne Passwort oder sonstigen Nachweis.

ZWEITER WEG ÜBER DIE WSGI-UMGEBUNG

Verschärft wurde das Problem durch eine zweite Variante desselben Fehlers: War die konfigurierte Variable auf einen HTTP-präfigierten Namen wie HTTP_X_FORWARDED_USER gesetzt, füllen viele WSGI-Server diese Variable automatisch aus eingehenden Headern — Angreifer konnten also auch diesen vermeintlich serverseitigen Weg direkt über ihre eigene Anfrage bedienen. Betroffen sind laut Advisory alle Versionen von pgAdmin4 ab 6.2 bis einschließlich 9.17 — praktisch der gesamte aktuell im Einsatz befindliche Versionsbereich.

WIE DER FIX DAS PROBLEM SCHLIESST

Version 9.18 räumt gleich mehrfach auf: Der Header-Weg ist jetzt standardmäßig deaktiviert und muss explizit über die neue Option WEBSERVER_REMOTE_USER_FROM_HEADER eingeschaltet werden. Selbst wenn er aktiv ist, akzeptiert pgAdmin4 die Kopfzeile nur noch von Anfragen, die nachweislich von einer Liste vertrauenswürdiger Proxy-Adressen kommen, und vergleicht dabei optional ein gemeinsames Geheimnis über einen zeitkonstanten Vergleich, um Seitenkanalangriffe zu verhindern. Zusätzlich verweigert pgAdmin4 jetzt den Login für Konten, deren hinterlegte Authentifizierungsquelle gar nicht „webserver” lautet — ein Riegel gegen genau den Trick, sich als Admin auszugeben.

WAS DU JETZT TUN SOLLTEST

Wer pgAdmin4 nur lokal über localhost oder ausschließlich im internen Netz ohne Webserver-Auth betreibt, ist von dieser konkreten Lücke nicht betroffen. Alle anderen sollten so schnell wie möglich auf 9.18 aktualisieren. Ist ein sofortiges Update nicht möglich, hilft als Übergangslösung, den Webserver-Authentifizierungsmodus temporär zu deaktivieren und stattdessen auf interne pgAdmin-Konten mit eigenem Passwort umzustellen — dann greift der verwundbare Codepfad gar nicht erst.

Häufige Fragen

Was ist der Webserver-Authentifizierungsmodus in pgAdmin4?
Dabei übernimmt pgAdmin4 die Identität eines Nutzers von einem vorgeschalteten Webserver oder Reverse-Proxy, statt selbst ein Passwort abzufragen — üblich in Setups mit Single-Sign-On. pgAdmin vertraut darauf, dass diese Identität bereits korrekt geprüft wurde.
Bin ich betroffen, wenn ich pgAdmin4 nur lokal ohne Proxy nutze?
Nein, wer keinen Webserver-Authentifizierungsmodus eingerichtet hat und sich stattdessen ganz normal mit internem pgAdmin-Konto und Passwort anmeldet, ist von dieser konkreten Lücke nicht betroffen.
Reicht es, den Server hinter eine Firewall zu stellen?
Das reduziert das Risiko, schließt die Lücke aber nicht vollständig, solange jemand mit Netzwerkzugriff — etwa ein bereits kompromittiertes Gerät im selben Netz — die pgAdmin-Oberfläche erreichen kann. Ein Update auf 9.18 bleibt die einzig vollständige Lösung.
Muss ich nach dem Update etwas an meiner Proxy-Konfiguration ändern?
Möglicherweise ja: Der Header-Weg ist nach dem Update standardmäßig aus und muss über WEBSERVER_REMOTE_USER_FROM_HEADER explizit wieder aktiviert werden, zusammen mit einer Liste vertrauenswürdiger Proxy-Adressen. Wer bisher darauf gesetzt hat, sollte die Konfiguration nach dem Update prüfen.

Quellen

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert