TeamQuest Blog

Krytyczna luka w WordPressie od 6 lat pozwala na zdalne wykonanie kodu

Krytyczna luka w WordPressie od 6 lat pozwala na zdalne wykonanie kodu

Maciej Olanicki , 20.02.2019 r.

WordPress, mimo swej gigantycznej popularności, nigdy nie uchodził za bezpieczny system zarządzania treścią. Wręcz przeciwnie, powszechna jest opinia, że najpopularniejszy CMS w Internecie jest dziurawy jak sito. Dowodów nie brakuje – nie ma miesiąca, by w WordPressie nie odkryto tej czy innej luki bezpieczeństwa, nierzadko krytycznej. Czas na kolejny akt tej niekończącej się tragedii.

WordPress dziurawy jak sito

Lukę odnaleźli w WordPressie 5.0.0 eksperci z niemieckiego RipsTech. Scenariusz ataku wykorzystuje wektor dwóch podatności. Jedna z nich została już załatana w WordPressie 4.9.9 i 5.0.1, ale druga wciąż może zostać wykorzystana. Każda witryna wykorzystująca wtyczki, które niepoprawnie obsługuje wpisy Post Meta (służą zbieraniu metadanych wczytywanych do WP obrazków) wciąż jest podana. Według RipsTech mowa o milionach witryn – odsetek podatnych serwisów szacowany jest na około 33%.

Jak przebiega atak? Kluczowe są wspominany wpisy Post Meta. Są one tworzone po wczytaniu obrazka do WordPressa i służą przechowywaniu metadanych. Każdy wpis ma standardową strukturę klucza i wartości i stanowi po prostu rejestr przechowywanych na serwerach obrazków wczytanych przez autorów. Znajdują się w nim między innymi informacje o autorze, rozmiarach, nazwie, itp. Na podstawie wpisów Post Meta grafiki są identyfikowane, a następnie możliwe do odnalezienia i ponownego wykorzystania.

Post Meta i Path Traversal

Problem w tym, że wpisy Post Meta da się nadpisać i to bez zmiany pliku obrazku. Może to zrobić każdy użytkownik z uprawnieniami autora po prostu przez modyfikację metadanych obrazków. To zaś może zostać wykorzystane do ataku typu Path Traversal. WordPress wczytuje obrazki na strony na dwa sposoby – w pierwszej kolejności przez adres względny. Jeśli plik nie będzie dostępny, wówczas nastąpi próba pobrania obrazka przez adres bezwzględny, czyli https://atakowanastrona.pl/wp-content/uploads/obrazek.jpg.

Dzieje się tak, gdyż niektóre rozszerzenia generują obrazki „w locie”, dopiero po wywołaniu ich przez adres. Słowem – obrazka „nie ma”, dopóki wywoła się go adresem bezwzględnym. Niestety, CMS ignoruje w adresach bezwzględnych całą zawartość po znaku zapytania. Nic nie stoi na przeszkodzie, by obrazek został prawidłowo pobrany z adresu https://atakowanastrona.pl/wp-content/uploads/obrazek.jpg?skrypt.php. Po tym, jak obrazek zostaje wczytany, może być kadrowany i zapisywany ze zmodyfikowaną nazwą (przedrostek cropped-) do systemu plików WordPressa.

Zdalne wykonanie kodu możliwe od 6 lat

Oznacza to, że razem z obrazkiem może zostać pobrany i wykonany dowolny skrypt PHP, atak Path Traversal pozwala go bowiem umieścić w folderze z motywami WordPressa. Mowa zatem o krytycznej luce pozwalającej na zdalne wykonanie dowolnego kodu na serwerze. Nic bowiem nie stoi na przeszkodzie, by atakujący umieścił dowolny skrypt PHP przechowywany w danych EXIF obrazka, który będzie następnie przechowywany w folderze z motywami.

Scenariusz ataku wykorzystujący obie podatności jest możliwy od… 6 lat. Jak wspomnieliśmy, możliwość nadpisywania Post Meta przez nieuprawnionych użytkowników usunięto w WordPressie 4.9.9 i 5.0.1, niemniej Path Traversal wciąż jest możliwy. Twórcy WordPressa zostali poinformowani o podatności. Ma ona zostać załatana w kolejnej wersji CMS-a.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej