CVE-2026-116248
ŚrednieCVSS 6.8Streszczenie
W pgAdmin 4 w trybie serwera punkty końcowe API serwera przechowywały flagę "shared" i nazwę użytkownika, pozwalając każdemu użytkownikowi mogącemu zarejestrować serwer na udostępnienie go wszystkim. Import servers.json miał podobną lukę, ponieważ wpisy "Shared" nieadministratora usuwano dopiero po walidacji.
Ocena ryzyka
Użytkownik może umieścić w drzewie każdego innego użytkownika serwer podszywający się pod zaufany, wskazujący na kontrolowany host, i przechwycić hasło bazy danych przy połączeniu. Udostępniony serwer nie zawiera poświadczeń, więc nie daje bezpośredniego dostępu.
Rekomendacja
Zaktualizuj pgAdmin 4 do wersji 9.19 lub nowszej.
Inne podatności w pgAdmin 4
Zobacz wszystkie- CVE-2026-116252Średnie
W pgAdmin 4 odświeżanie widoku zmaterializowanego przekazywało nazwę bazy danych do argumentu --dbname programu psql bez zmian. libpq traktuje wartość zawierającą "=" lub URI postgresql:// jako pełny ciąg połączenia, co pozwalało przekierować połączenie na wybrany host i port oraz ujawnić zapisane hasło serwera.
- CVE-2026-116251Średnie
W pgAdmin 4 zmiana hasła użytkownika (przez niego samego lub administratora) nie unieważniała istniejących sesji. Sesja ustanowiona przed zmianą, np. na innym urządzeniu lub przez osobę znającą stare hasło, pozostawała zalogowana aż do wygaśnięcia.
- CVE-2026-116250Średnie
W trybie serwera pgAdmin 4 sprawdzał uprawnienia do pliku w katalogu przechowywania za pomocą check_access_permission(), a następnie otwierał plik po nazwie zwykłym open() lub przekazywał ścieżkę narzędziom (pg_dump, pg_dumpall, pg_restore, psql) oraz funkcjom eksportu/importu servers.json. Podmiana dowiązania symbolicznego lub twardego albo FIFO między sprawdzeniem a otwarciem pozwalała wyjść poza katalog przechowywania i zapisać, nadpisać lub odczytać plik, albo załadować go do tabeli, z uprawnieniami konta systemowego pgAdmin. Luka dotyczy wersji pgAdmin 4 przed 9.19.
- CVE-2026-116249Wysokie
W trybie serwera pgAdmin 4 przed wersją 9.19 funkcja get_complete_file_path() usuwała tylko wiodące ukośniki przed połączeniem ścieżki, więc ścieżka typu ../<inny użytkownik>/.pgpass mogła wskazać plik innego użytkownika. Parametr sslkeylogfile był przekazywany do libpq bez zmian, a make_conninfo() nie cytowało nazw parametrów, co pozwalało przemycić dodatkowe pary klucz=wartość.
- CVE-2026-116247Wysokie
W pgAdmin 4 przed wersją 9.19, gdy serwer nie miał skonfigurowanego pliku haseł, certyfikatu klienta lub klucza klienta albo wskazany plik nie istniał, pgAdmin pomijał parametr w połączeniu, a libpq używał domyślnych plików konta systemowego uruchamiającego pgAdmin. W trybie serwera każdy użytkownik mógł więc łączyć się z serwerem przy użyciu zapisanych haseł lub certyfikatu konta usługi.
- CVE-2026-116246Średnie
W pgAdmin 4 hasło serwera było zapisywane w środowisku procesu pgAdmin (jako PGPASSWORD dla narzędzia PSQL oraz pod zmienną per-proces dla narzędzia) i nigdy nie usuwane. W trybie serwera środowisko jest współdzielone przez żądania wszystkich użytkowników i kopiowane do uruchamianych procesów, więc inny użytkownik mógł odziedziczyć hasło i użyć go do połączenia.
- CVE-2026-116245Wysokie
W pgAdmin 4 w trybie serwera libpq wyszukuje usługi połączeń w pliku usług konta systemowego, co pozwala użytkownikom na użycie poświadczeń lub plików certyfikatów tego konta. Podatność dotyczy wersji przed 9.19 i może prowadzić do nieautoryzowanego dostępu do serwerów baz danych.
- CVE-2026-116244Wysokie
W pgAdmin 4 w trybie serwera usunięcie KRB5CCNAME powodowało, że biblioteka Kerberos używała domyślnego cache poświadczeń konta systemowego, umożliwiając każdemu użytkownikowi połączenie jako principal usługi. Podatność dotyczy wersji przed 9.19 i obejmuje również obejście gssencmode=disable oraz zachowanie SSPI w Windows.
- CVE-2026-116243Wysokie
W pgAdmin 4 w trybie serwera ścieżka binarna ustawiona przez użytkownika nie była weryfikowana względem katalogów SHARED_STORAGE, co pozwalało na przesłanie pliku wykonywalnego i uruchomienie go jako konto systemowe pgAdmin. Podatność jest szczególnie istotna w Windows, gdzie pliki mogą być wykonywalne, i dotyczy wersji przed 9.19.
- CVE-2026-116242Wysokie
W pgAdmin 4 w trybie serwera biblioteka sshtunnel zawsze ładowała niezaszyfrowane klucze prywatne z ~/.ssh konta systemowego i czytała jego konfigurację SSH, umożliwiając każdemu użytkownikowi skonfigurowanie tunelu z użyciem tożsamości konta usługi. Podatność dotyczy wersji przed 9.19.
Oryginalny opis (angielski, źródło NVD)
In pgAdmin 4 server mode only administrators are meant to share a server with all users; the server dialog shows the Shared switch only to them. The create and update endpoints of the server API, however, stored the "shared" flag and shared username they were sent, so any user able to register a server could share one with every other user. The servers.json import had a similar gap: a non-administrator's "Shared" entries were removed only after validation, so a file that also held an invalid entry could create a shared server. A shared server carries no credentials, so this gives no direct access. It lets a user plant a server, named to look trusted, in every other user's tree and pointing at a host the user controls; anyone who then connects to it presents their own database password to that host. The fix refuses a non-administrator's request that would share a server with HTTP 403, prunes a non-administrator's shared entries from a servers.json import before validating it, and warns at startup about servers shared earlier by non-administrators. This issue affects pgAdmin 4: before 9.19.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

