# Podatność wstrzykiwania poleceń w CyberPanel CVE-2024-51378: analiza i wykorzystanie
W wersjach CyberPanel do 2.3.7 włącznie odkryto podatność wstrzykiwania poleceń (CVE-2024-51378), umożliwiającą obejście uwierzytelniania i wykonywanie dowolnych poleceń za pośrednictwem endpointów /dns/getresetstatus i /ftp/getresetstatus. Problem zlokalizowany jest w plikach dns/views.py i ftp/views.py. Daje to atakującemu pełną kontrolę nad serwerem bez autoryzacji.
CyberPanel: przeznaczenie i architektura
CyberPanel to otwarta panel sterowania hostingiem internetowym oparty na OpenLiteSpeed. Umożliwia zarządzanie domenami, bazami danych, FTP, pocztą i DNS poprzez interfejs webowy na porcie 8090. Popularny wśród dostawców hostingu i programistów dzięki integracji ze współczesnymi stosami technologicznymi.
Podatność dotyczy serwerów na Ubuntu/Debian z zainstalowanym panelem. Atakujący może uzyskać dostęp root, co prowadzi do kompromitacji wszystkich hostowanych usług.
Konfiguracja środowiska testowego
Aby sprawdzić podatność, uruchom VPS z Ubuntu i zainstaluj podatną wersję CyberPanel:
- Zaktualizuj pakiety:
apt-get update
- Zainstaluj wget i pobierz instalator:
apt install wget
cd /opt
wget -O installer.sh https://cyberpanel.net/install.sh
- Uruchom instalację:
chmod +x installer.sh
sh installer.sh
Po restarcie otwórz https://<IP>:8090 w celu konfiguracji. Tworzy to środowisko testowe z podatnymi endpointami.
Analiza techniczna podatności
RCE wynika z niewystarczającej walidacji danych wejściowych w obsługach /dns/getresetstatus i /ftp/getresetstatus. Parametry żądania przekazywane są do poleceń shell bez escapingu, co umożliwia wstrzyknięcie.
Przykład wykorzystania z publicznym PoC:
git clone https://github.com/refr4g/CVE-2024-51378.git
cd CVE-2024-51378
python3 CVE-2024-51378.py http://target.com:8090 /ftp/getresetstatus
Skrypt wysyła spreparowane żądanie, wykonujące payload na serwerze. Rezultat to reverse shell lub wykonanie poleceń jako root. W środowisku testowym prowadzi to do wyodrębnienia flag lub utrwalenia dostępu.
Kluczowe wektory ataku:
- Obejście autentykacji bez danych logowania.
- Wykonanie
os.system()z danymi kontrolowanymi przez użytkownika. - Eskalacja uprawnień do root z powodu kontekstu panelu.
Metryki wpływu i wykrywanie
Podatność ma ocenę CVSS 9.8 (Krytyczna). Dotyczy wszystkich instalacji przed patchem 2.3.7. Aby wykryć, sprawdź logi w /home/cyberpanel/logs/ pod kątem podejrzanych żądań do /getresetstatus lub monitoruj ruch na porcie 8090.
Kroki weryfikacji:
- Sprawdź wersję:
cyberpanel version. - Przetestuj endpointy za pomocą curl:
curl 'http://target:8090/ftp/getresetstatus?param=;id'. Jeśli wyświetlauid=0(root), podatność istnieje. - Użyj skanerów typu Nuclei z szablonem CVE-2024-51378.
Środki zaradcze
- Zaktualizuj do 2.3.7+ z patchem: postępuj zgodnie z instrukcjami w panelu lub CLI.
- Ogranicz dostęp: firewall na 8090 (ufw allow from IP-range), użyj VPN.
- Wdroż WAF (ModSecurity) do filtrowania wstrzykiwań.
- Audyt:
grep -r 'getresetstatus' /usr/local/CyberCP/w poszukiwaniu modyfikacji.
Regularne aktualizacje i zasada najmniejszych uprawnień minimalizują ryzyka.
Co ważne
- Podatność umożliwia RCE bez uwierzytelniania za pośrednictwem
/dns/getresetstatusi/ftp/getresetstatusw wersjach ≤2.3.7. - Patch jest dostępny; natychmiastowa aktualizacja kluczowa dla produkcji.
- Przetestuj środowisko PoC przed aktualizacją, aby uniknąć fałszywych alarmów.
- Monitoruj port 8090 i logi pod kątem wzorców wstrzykiwania poleceń.
- Ogranicz zewnętrzny dostęp do panelu za pomocą firewall/VPN.
— Editorial Team
Brak komentarzy.