Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Kolejna krytyczna podatność w popularnej wtyczce WordPressa – aktualizujcie LiteSpeed Cache

09 września 2024, 13:17 | W biegu | 1 komentarz
  • LiteSpeed Cache to wtyczka WordPressa implementująca mechanizm cache oraz pomagająca w optymalizacji serwisu
  • Dwa tygodnie temu informowaliśmy o podatności CVE-2024-28000 pozwalającej na przejęcie konta przez nieuwierzytelnionego atakującego
  • Pogłębiony audyt wtyczki wykazał kolejną podatność klasy account takeover CVE-2024-44000 – zalecana jest aktualizacja wtyczki do wersji 6.5.0.1 lub wyższej
  • Luka pozwala na uzyskanie dostępu do CMS jako uwierzytelniony użytkownik, dostęp jest możliwy również do konta z uprawnieniami administratora co w efekcie może prowadzić do jeszcze większych konsekwencji, z wykonaniem kodu na serwerze aplikacji włącznie
  • Do wykorzystania podatności potrzebna jest konfiguracja wymuszająca tworzenie logu przez plugin (nie jest to ustawienie domyślne) oraz dostępność pliku /wp-content/debug.log

Całkiem niedawno opisywaliśmy ciekawą podatność pozwalającą na przejęcie konta w WordPressie przez popularną wtyczkę LiteSpeed Cache. Niestety nie był to najlepszy czas dla developerów tego rozszerzenia, ponieważ bardziej szczegółowa analiza poprzedniej podatności doprowadziła do odkrycia nowej luki pozwalającej na przejęcie konta przez nieuwierzytelnionego atakującego. Podatność została szczegółowo opisana w serwisie patchstack.com. 

Podczas analizy CVE-2024-28000, wskazano na fakt, że w przypadku uruchomieniu trybu debug w ustawieniach LiteSpeed Cache, tworzony jest plik debug.log wewnątrz katalogu wp-content, do którego zapisywane są krytyczne informacje takie jak wartość tokenu pozwalającego (przy pomocy CVE-2024-28000) na przejęcie użytkownika. Po bardziej szczegółowej analizie okazało się, że trafiają tam również nagłówki odpowiedzi wysłanej do użytkownika (listing 1).

/** * End call of one request process * @since 4.7 * @access public */public static function ended(){ self::debug(’Response headers’, headers_list());
$elapsed_time = number_format((microtime(true) – LSCWP_TS_0) * 1000, 2); self::debug(„End response\n————————————————–Duration: ” . $elapsed_time . ” ms——————————\n”);}
Listing 1. Fragment pliku src/debug2.cls.php – implementacja funkcji ended(), która zapisuje do pliku debug.log informacje o nagłówkach (źródło: patchstack.com)

Wśród nagłówków odpowiedzi znaleźć się może w szczególności nagłówek Set-Cookie, który zawierać będzie ciasteczka pozwalające na kradzież sesji uwierzytelnionego użytkownika. 

Możliwe było także skonfigurowanie wtyczki w taki sposób, aby zapisywane były ciasteczka dołączane do żądań wysyłanych przez użytkownika (nagłówek cookies). 

Należy pamiętać, że podatność wymaga aby opcja debugowania była włączona w konfiguracji wtyczki oraz aby plik debug.log był dostępny (oraz jego uprawnienia pozwalały na odczyt). 

Programiści pluginu wprowadzili łatki, które dostępne są w wersji 6.5.0.1 (włącznie).  Wprowadzone poprawki to między innymi zmiana miejsca przechowywania logów, wraz z losową nazwą pliku, usunięcie możliwości zapisywania ciasteczek w logu. 

W serwisie GitHub pojawił się PoC automatyzujący trywialną eksploitację polegającą na wyciągnięciu z pliku logu ciasteczek użytkownika (po prostu pobiera plik oraz przeszukuje go przy pomocy wyrażeń regularnych). 

Użytkownikom WP z LiteSpeed Cache sugerujemy wdrożenie poprawnej konfiguracji bez włączonej opcji debug a także niezwłoczną aktualizację. 

~fc

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Kamila

    Czy mod security poradziłoby sobie z takim atakiem?

    Odpowiedz

Odpowiedz