CVE-2026-116241
KrytyczneCVSS 9.9Streszczenie
pgAdmin 4 przed wersją 9.19 zawiera obejście poprawki CVE-2026-17566 w narzędziu Import/Export Data. Nieprawidłowa walidacja ukośnika w podwójnie cytowanym identyfikatorze pozwala ukryć nawias zamykający i wykonać klauzulę TO PROGRAM przez psql na hoście pgAdmin z uprawnieniami konta systemowego.
Ocena ryzyka
Zwykła rola bazodanowa może wykonać dowolne polecenia systemowe na hoście pgAdmin, co prowadzi do przejęcia serwera.
Rekomendacja
Zaktualizuj pgAdmin 4 do wersji 9.19 lub nowszej i ogranicz uprawnienia Import/Export Data dla użytkowników niebędących administratorami.
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-116248Średnie
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.
- 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.
Oryginalny opis (angielski, źródło NVD)
pgAdmin 4's Import/Export Data tool wraps a user's query export in a psql \copy (...) TO command and checks that the query's parentheses are balanced so that nothing can escape the wrapper. The check rejected a backslash inside a single-quoted string, but not inside a double-quoted identifier, where it treated the next double quote as closing the identifier. psql's \copy parser applies the connection's escape character to whichever quote opened a token, so with standard_conforming_strings off a backslash-escaped double quote does not close the identifier. pgAdmin's and psql's view of the quoting then diverged, a closing parenthesis hidden from the check ended the \copy (...) wrapper, and a following TO PROGRAM clause was executed by psql on the pgAdmin host, as the operating-system account running pgAdmin, before the server rejected the statement. An ordinary database role can turn standard_conforming_strings off for itself, and the Import/Export Data permission is granted to non-administrators by default. This is a bypass of the fix for CVE-2026-17566. The fix rejects any backslash inside a double-quoted identifier, as was already done for single-quoted strings, since its meaning depends on a server setting that cannot be known reliably when the query is validated. This issue affects pgAdmin 4: before 9.19.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

