Wszystkie artykuły Następny

WordPress 4.9.6 - krytyczna dziura może doprowadzić do egzekucji kodu

Bardzo niebezpieczny błąd w rdzeniu Wordpress w wersji do 4.9.6., który może doprowadzić do egzekucji kodu.

Do odkrycia bardzo niebezpiecznej luki w CMS'sie Wordpress doszło już miesiące temu. Bug ten dotyczy Wordpress 4.9.6 i wcześniejszych - jeśli ciągle korzystasz z tej wersji wymagana jest natychmiastowa aktualizacja (łatka zabezpieczająca tę lukę wyszła w wersji 4.9.7

Oficjalny identyfikator to CVE-2018-20714. By wykorzystać ten błąd atakujący musi mieć możliwość do edytowania i usuwania plików media - czyli wystarczy mu dostęp do konta o przywilejach na poziomie Autora.

Jak krytyczna dziura w WordPress może zostać wykorzystana przez hackera?

Dzięki wykorzystaniu tej luki hacker może skasować jakikolwiek plik w instalacji WordPress'a (łącznie z możliwością skasowania całej strony co może mieć dewastujące skutki, gdy strona nie ma backup'ów). Atakujący może doprowadzić do egzekucji kodu na serwerze.

Poniżej lista plików, które mogą zostać usunięte podczas ataku:

  • .htaccess: Plik .htaccess jest wykorzystywany do blokowania dostępu do wybranych folderów - jego skasowanie zdejmuje te zaostrzenia.
  • index.php: Pliki index.php często używane są w folderach na serwerze do blokowania widoczności listy plików.
  • wp-config.php: Usunięcie tego pliku spowoduje rozpoczęcie procesu instalacyjnego WordPress przy kolejnej wizycie na stronie. Hacker w takim przypadku może przejść przez proces instalacyjny i zmienić dane administratora - co finalnie może doprowadzić do egzekucji kodu na serwerze.

Detale techniczne

Błąd usunięcia dowolnego pliku może zostać zastosowany przez umieszczenie funkcji usunięcia w niezabezpieczonym polu wejściowym (html). W przypadku PHP dochodzi do tego, gdy funkcja unlink() zostanie przywołana - niezabezpieczone pole input może mieć wpływ na parametr $filename, który reprezentuje ścieżkę do pliku do skasowania.

Sekcja kodu odpowiedzialna za to w jądrze WordPress znajduje się w wp-includes/post.php:

wordpress krytyczny błąd - kod

Ten kawałek kodu odpowiada za usunięcie miniatury zdjęcia podczas usunięcia samego zdjęcia. Zmienna $meta['thumb'] jest przywołana przy egzekucji unlink() bez odpowiedniego sprawdzenia. 

wordpress krytyczny błąd - kod

Może zostać to wykorzystane przy tworzeniu nowego zdjęcia gdzie użytkownik ma możliwość podania relatywnej ścieżki do jakiegokolwiek pliku.

Tymczasowe rozwiązanie

Powyższy bug został załatany w wersji 4.9.7 więc nie polecamy ręcznej naprawy, którą pokazujemy jedynie w celach edukacyjnych. 

Gdy łatka nie istniała by rozwiązać problem należało dodać poniższy kod do instalacji WordPress'a - do zainstalowanego motywu w pliku functions.php

wordpress krytyczny błąd - kod

Kod ten ma na celu sprawdzić czy zmienna nie zawiera nieodpowiedniej ścieżki. 

Podsumowanie

Krytyczna bug w rdzeniu WordPress'a może pozwolić na całkowite przejęcie strony i egzekucję kodu przez użytkownika z przywilejami Autora. Luka ta została znaleziona przez zespół WordPress'a i została załatana w wersji 4.9.7 - należy jak najszybciej zrobić update do wersji 4.9.7 lub nowszej.

Postaw kawę autorowi artukułu.

Zobacz wszystkie artykuły

Jeśli potrzebujesz pomocy, twoja strona została zainfekowana, chcesz dokonać audytu bezpieczeństwa, czy po prostu masz jakieś pytania — napisz do nas. Postaramy się pomóc.

Zgłoś błąd w tekście
×