Podatność w platformie CloudNativePG umożliwia atakującemu z ograniczonym dostępem odzyskanie pełnych uprawnień superużytkownika PostgreSQL, a następnie wykonanie dowolnych poleceń systemowych wewnątrz poda Kubernetes. Ze względu na krytyczny wynik CVSS 9.4 i możliwość przejęcia kontroli nad procesem bazodanowym stanowi poważne zagrożenie dla środowisk produkcyjnych.
▸ Pokaż oryginał (EN)
CloudNativePG is a platform designed to manage PostgreSQL databases within Kubernetes environments. Prior to 1.29.1 and 1.28.3, the CloudNativePG metrics exporter opens its PostgreSQL connection as the postgres superuser via the pod-local Unix socket, then demotes the session with SET ROLE pg_monitor. SET ROLE changes only current_user; session_user remains postgres. Any SQL expression evaluated inside the scrape session can invoke RESET ROLE to recover real superuser privileges, then use COPY ... TO PROGRAM to spawn an OS-level subprocess as the postgres user inside the primary pod. The READ ONLY transaction flag does not block this; it gates writes to database state, not external processes. This vulnerability is fixed in 1.29.1 and 1.28.3.
Exporter metryk CloudNativePG nawiązuje połączenie z PostgreSQL jako superużytkownik 'postgres' przez lokalny socket poda, a następnie obniża uprawnienia sesji poleceniem SET ROLE pg_monitor. Jednak SET ROLE zmienia jedynie current_user — session_user pozostaje 'postgres'. Dowolne wyrażenie SQL wykonane w ramach sesji scrapingu może wywołać RESET ROLE, przywracając pełne uprawnienia superużytkownika, po czym polecenie COPY ... TO PROGRAM pozwala uruchomić dowolny podproces systemu operacyjnego jako użytkownik 'postgres' na głównym podzie. Mechanizm transakcji READ ONLY nie blokuje tego ataku, ponieważ chroni jedynie przed zapisem do stanu bazy danych, nie przed uruchamianiem zewnętrznych procesów.
Atakujący może wykonać dowolne polecenia systemowe (OS-level command execution) jako użytkownik 'postgres' wewnątrz poda Kubernetes, co może prowadzić do przejęcia kontroli nad bazą danych, naruszenia poufności i integralności danych oraz dalszego lateral movement w środowisku klastrowym.
Należy zaktualizować CloudNativePG do wersji 1.29.1 lub 1.28.3, w których podatność została naprawiona. Patchowanie jest dostępne w oficjalnym repozytorium projektu.
CloudNativePG w wersjach wcześniejszych niż 1.29.1 oraz 1.28.3
Podatność dotyczy środowisk kontenerowych (Kubernetes). Wektor ataku wymaga uwierzytelnienia (PR:L), jednak nie wymaga interakcji użytkownika ani szczególnych warunków. Podatność powiązana jest z CWE-250 (nadmierne uprawnienia), CWE-271 (nieprawidłowe obniżenie uprawnień) oraz CWE-426 (niezaufana ścieżka wyszukiwania). Szczegóły opublikowano w ramach security advisory GHSA-423p-g724-fr39.
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XLinuxfoundation Cloudnativepg
APPLinuxfoundation< 1.28.31.29.0 – 1.29.1 (bez)
Powiązane podatności
containerd is an open-source container runtime. In versions prior to 1.7.33, 2.3.2, 2.2.5, 2.1.9, and 2.0.10 t...
AGL app-framework-main: Zip Slip + TOCTOU umożliwiają zapis dowolnych plików
Spinnaker Echo: nieograniczony dostęp SPeL umożliwia RCE
RCE w Spinnaker — wykonanie dowolnych poleceń na podach clouddriver
RCE w Kedro przez niezabezpieczoną konfigurację logowania (dictConfig)