# Zranitelnost command injection v CyberPanel CVE-2024-51378: analýza a exploatace
V CyberPanel ve verzích do 2.3.7 včetně byla objevena zranitelnost command injection (CVE-2024-51378), která umožňuje obejít autentizaci a spustit libovolné příkazy prostřednictvím endpointů /dns/getresetstatus a /ftp/getresetstatus. Problém je lokalizován v souborech dns/views.py a ftp/views.py. To poskytuje útočníkovi plnou kontrolu nad serverem bez autorizace.
CyberPanel: účel a architektura
CyberPanel je open-source panel pro správu webhostingu založený na OpenLiteSpeed. Podporuje správu domén, databází, FTP, e-mailu a DNS přes webové rozhraní na portu 8090. Je oblíbený u poskytovatelů hostingu a vývojářů díky integraci s moderními technologickými stacky.
Zranitelnost se týká serverů na Ubuntu/Debian s nainstalovaným panelem. Útočník tak může získat root přístup, což vede ke kompromitaci všech hostovaných služeb.
Nastavení testovacího prostředí
Pro ověření zranitelnosti nasaďte VPS s Ubuntu a nainstalujte CyberPanel zranitelné verze:
- Aktualizujte balíčky:
apt-get update
- Nainstalujte wget a stáhněte instalátor:
apt install wget
cd /opt
wget -O installer.sh https://cyberpanel.net/install.sh
- Spusťte instalaci:
chmod +x installer.sh
sh installer.sh
Po restartu otevřete https://<IP>:8090 pro konfiguraci. Tím vznikne testovací prostředí s endpointy náchylnými k útoku.
Technická analýza zranitelnosti
RCE vzniká kvůli nedostatečné validaci vstupu v obslužných routinech /dns/getresetstatus a /ftp/getresetstatus. Parametry požadavku se předávají do shell příkazů bez escapování, což umožňuje injekci.
Příklad exploatace s veřejným 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
Skript pošle crafted požadavek, který spustí payload na serveru. Výsledek je reverzní shell nebo spuštění příkazů od roota. V testovacím prostředí to vede k získání flagů nebo persistence.
Klíčové vektory útoku:
- Obcházení autentizace bez přihlašovacích údajů.
- Spuštění
os.system()s user-controlled vstupem. - Escalace privilegií na root díky kontextu panelu.
Metriky dopadu a detekce
Zranitelnost má CVSS 9.8 (Critical). Postihuje všechny instalace do patche 2.3.7. Pro detekci zkontrolujte logy v /home/cyberpanel/logs/ na podezřelé požadavky na /getresetstatus nebo monitorujte provoz na portu 8090.
Kroky k ověření:
- Zkontrolujte verzi:
cyberpanel version. - Testujte endpointy s curl:
curl 'http://target:8090/ftp/getresetstatus?param=;id'. Pokud vypíšeuid=0(root), zranitelnost je přítomna. - Použijte skenery jako Nuclei s šablonou CVE-2024-51378.
Opatření k odstranění
- Aktualizujte na 2.3.7+ s patchem: postupujte podle instrukcí v panelu nebo CLI.
- Omezte přístup: firewall na 8090 (ufw allow from IP-range), použijte VPN.
- Implementujte WAF (ModSecurity) pro filtrování injekcí.
- Audit:
grep -r 'getresetstatus' /usr/local/CyberCP/na vlastní úpravy.
Pravidelné aktualizace a principy least-privilege minimalizují rizika.
Co je důležité
- Zranitelnost umožňuje RCE bez autentizace přes
/dns/getresetstatusa/ftp/getresetstatusve verzích ≤2.3.7. - Patch je dostupný; okamžité aktualizování je klíčové pro produkční prostředí.
- Testujte prostředí s PoC před aktualizací, abyste se vyhnuli falešným poplachům.
- Monitorujte port 8090 a logy na patterny command injection.
- Omezte vnější přístup k panelu pomocí firewallu/VPN.
— Editorial Team
Zatím žádné komentáře.