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.