CVE-2026-86864
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Narzędzie Backup pgAdmin 4 dodało dostarczone przez klienta pole „baza danych” z żądania /backup/job/<sid>/object do wektora argumentów pg_dump jako sam końcowy argument pozycyjny, bez sprawdzania poprawności. Ponieważ pg_dump analizuje swoje opcje za pomocą getopt_long, który permutuje argumenty, wartość rozpoczynająca się od myślnika była interpretowana jako opcja, a nie jako nazwa bazy danych. Wartość taka jak --file=/absolute/path zastępuje zatem ograniczony do przechowywania plik --file, który wcześniej skonstruował pgAdmin, powodując, że pg_dump zapisuje swoje dane wyjściowe w dowolnym miejscu, w którym proces pgAdmin może zapisać, poza katalogiem przechowywania Menedżera plików użytkownika. Powoduje to utworzenie dowolnego pliku i nadpisanie go jako konta systemu operacyjnego z uruchomionym pgAdmin, co może zniszczyć własną bazę danych konfiguracji pgAdmin i, w zależności od wybranego celu, zostać eskalowane dalej.
To samo pole dodatkowo umożliwiało wstrzyknięcie ciągu połączenia. Libpq rozszerza nazwę bazy danych zawierającą znak równości do pełnego ciągu połączenia, a osadzone w niej słowa kluczowe zastępują --host i --port przekazywane przez pgAdmin, więc wartość taka jak „host=atakujący.przykładowy port=5432 nazwa_bazy_danych=x” przekierowuje pg_dump na serwer wybrany przez atakującego. Ponieważ pgAdmin eksportuje odszyfrowane przechowywane hasło bazy danych do zmiennej środowiskowej PGPASSWORD przed uruchomieniem narzędzia, przekierowane połączenie przenosi te dane uwierzytelniające do punktu końcowego wyznaczonego przez osobę atakującą. Obydwa zachowania są dostępne dla każdego uwierzytelnionego użytkownika posiadającego uprawnienie Tools_backup, które jest nadawane domyślnej roli Użytkownika.
Poprawka całkowicie zatrzymuje przekazywanie nazwy bazy danych przez wektor argumentów i dostarcza ją w zmiennej środowiskowej PGDATABASE, która libpq traktuje jako dosłowną nazwę bazy danych i nigdy nie jest rozwijana jako ciąg połączenia. Jest to zgodne z podejściem stosowanym już w narzędziu Import/Eksport. Testy regresji potwierdzają, że w skonstruowanym wektorze argumentów nie ma nazwy bazy danych i że PGDATABASE zawiera dokładnie żądaną wartość.
Ten problem dotyczy pgAdmin 4: od wprowadzenia końcowego argumentu pozycyjnej bazy danych w narzędziu Backup przed wersją 9.18.
>_ Słabości (CWE)
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org