Nginx UI w wersjach poprzedzających 2.3.8 udostępnia endpoint przywracania kopii zapasowej (POST /api/restore) bez jakiegokolwiek uwierzytelnienia przez pierwsze 10 minut po uruchomieniu procesu. Nieuwierzytelniony zdalny atakujący może w tym oknie czasowym przesłać spreparowane archiwum, które prowadzi do wykonania dowolnych poleceń systemowych — typowo z uprawnieniami root w środowiskach Docker.
▸ Pokaż oryginał (EN)
Nginx UI is a web user interface for the Nginx web server. Prior to version 2.3.8, nginx-ui exposes a backup restore endpoint (POST /api/restore) that is completely unauthenticated during the first 10 minutes after process startup on any fresh installation. An unauthenticated remote attacker can upload a crafted backup archive that overwrites the application's configuration file (app.ini) and SQLite database. Because the attacker controls the restored app.ini, they can inject an arbitrary OS command into the TestConfigCmd setting. After the application automatically restarts to apply the restored config, a single follow-up request triggers that command as the user running nginx-ui — typically root in Docker deployments. This issue has been patched in version 2.3.8.
W ciągu pierwszych 10 minut od startu aplikacji endpoint POST /api/restore nie wymaga żadnego uwierzytelnienia. Atakujący przesyła spreparowane archiwum kopii zapasowej, które nadpisuje plik konfiguracyjny app.ini oraz bazę danych SQLite. Ponieważ atakujący kontroluje przywrócony plik app.ini, może wstrzyknąć dowolne polecenie systemowe do ustawienia TestConfigCmd. Po automatycznym restarcie aplikacji w celu załadowania przywróconej konfiguracji, jedno kolejne żądanie wyzwala wykonanie wstrzykniętego polecenia w kontekście użytkownika uruchamiającego nginx-ui — zazwyczaj root w środowiskach Docker.
Atakujący może uzyskać pełną kontrolę nad systemem poprzez wykonanie dowolnych poleceń OS z uprawnieniami procesu nginx-ui (najczęściej root), co umożliwia kompromitację zarówno samej aplikacji, jak i systemu hosta oraz potencjalnie środowisk sąsiednich (wysoki wpływ na poufność, integralność i dostępność w zakresie systemu i otoczenia).
Należy zaktualizować Nginx UI do wersji 2.3.8 lub nowszej. Patch jest dostępny w oficjalnym repozytorium: https://github.com/0xJacky/nginx-ui/releases/tag/v2.3.8. Do czasu aktualizacji zaleca się ograniczenie dostępu sieciowego do interfejsu administracyjnego Nginx UI na poziomie firewalla, szczególnie w ciągu pierwszych 10 minut po każdym uruchomieniu lub restarcie usługi.
Nginx UI w wersjach wcześniejszych niż 2.3.8, szczególnie świeże instalacje uruchamiane w kontenerach Docker.
Podatność dotyczy wyłącznie okna czasowego 10 minut od startu procesu — ryzyko jest szczególnie wysokie przy automatycznych restartach usługi (np. po aktualizacjach lub awariach) w środowiskach Docker, gdzie nginx-ui działa jako root. Szczegóły opublikowano w GitHub Security Advisory GHSA-4pvg-prr3-9cxr.
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/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:XNginxui nginx Ui
APPNginxui< 2.3.8
Powiązane podatności
Nginx UI: manipulacja zaszyfrowanymi kopiami zapasowymi i wstrzyknięcie konfiguracji
Nginx UI: nieuwierzytelniony dostęp do endpointu MCP umożliwia przejęcie serwera
Nginx UI: nieuwierzytelniony dostęp do backupu z ujawnieniem kluczy szyfrowania
Nginx-UI: path traversal w imporcie certyfikatów umożliwia RCE
Nginx UI is a web user interface for the Nginx web server. In 2.3.4 and earlier, an authenticated user can per...