pgAdmin w wersji 8.3 i wcześniejszych zawiera podatność path traversal w kodzie obsługi sesji użytkowników, która umożliwia wykonanie dowolnego kodu (RCE) poprzez deserializację złośliwych obiektów pickle. W zależności od systemu operacyjnego atak może być przeprowadzony bez uwierzytelnienia (Windows) lub przez uwierzytelnionego użytkownika (Linux/POSIX).
▸ Pokaż oryginał (EN)
pgAdmin <= 8.3 is affected by a path-traversal vulnerability while deserializing users’ sessions in the session handling code. If the server is running on Windows, an unauthenticated attacker can load and deserialize remote pickle objects and gain code execution. If the server is running on POSIX/Linux, an authenticated attacker can upload pickle objects, deserialize them, and gain code execution.
Podczas deserializacji sesji użytkowników kod aplikacji nie weryfikuje poprawnie ścieżek, co skutkuje podatnością path traversal (CWE-31). Na systemach Windows napastnik nieuwierzytelniony może wskazać zdalny obiekt pickle i doprowadzić do jego deserializacji przez serwer, uzyskując tym samym wykonanie kodu. Na systemach POSIX/Linux uwierzytelniony atakujący może przesłać spreparowany obiekt pickle na serwer, a następnie zmusić aplikację do jego deserializacji, co również prowadzi do RCE. Mechanizm Python pickle jest z natury niebezpieczny — deserializacja niezaufanych danych pozwala na wykonanie dowolnego kodu w kontekście procesu serwera.
Atakujący może uzyskać pełne wykonanie kodu na serwerze (RCE) w kontekście procesu pgAdmin, co w praktyce oznacza możliwość przejęcia kontroli nad serwerem, kradzieży danych oraz dalszego lateral movement w sieci.
Należy zaktualizować pgAdmin 4 do wersji nowszej niż 8.3, w której błąd został usunięty. Szczegóły dotyczące patcha dostępne są w referencjach producenta (GitHub pgadmin-org/pgadmin4 issue #7258) oraz w komunikatach Fedora Package Announce. Do czasu aktualizacji należy rozważyć ograniczenie dostępu do interfejsu pgAdmin wyłącznie do zaufanych sieci lub adresów IP, a na systemach Windows — blokowanie wychodzących połączeń sieciowych z procesu pgAdmin.
pgAdmin 4 w wersji 8.3 i wcześniejszych (pgadmin-org/pgadmin4); dotyczy instalacji na systemach Windows oraz POSIX/Linux. Podatność dotyczy również pakietów pgAdmin dostępnych w Fedora Linux.
Podatność została szczegółowo opisana przez firmę Shielder w ich publicznym advisory (shielder.com). Na systemach Windows atak nie wymaga uwierzytelnienia, co znacząco podnosi jego krytyczność — stąd ocena CVSS 9.9 z zakresem wpływu Scope:Changed.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HFedora Project Fedora
OSFedoraproject40Pgadmin 4
APPPgadmin< 8.4
Powiązane podatności
PHP CGI argument injection – RCE na Windows przez mechanizm Best-Fit
Type Confusion w V8 (Google Chrome) — RCE przez spreparowaną stronę HTML
Type Confusion w silniku V8 Chrome — zdalne wykonanie kodu (RCE)
Use-after-free w Google Chrome Visuals umożliwiający ucieczkę z sandbox
Integer overflow w Skia w Google Chrome — sandbox escape