WordPress – luka w zabezpieczeniach wtyczki RCE

WordPress jest dzisiaj najczęściej używanym narzędziem CMS do tworzenia stron internetowych. Można już liczyć w milionach witryny, które zbudowane są właśnie przy użyciu tej platformy. WordPress nie jest jednak narzędziem idealnym i tak, jak w przypadku innych popularnych platform może czasem dojść tutaj do poważnych zagrożeń. Jednym z nich jest luka w zabezpieczeniach wtyczki RCE.

WordPress Elementor – co to?

WordPress jak już zostało wspomniane, jest platformą umożliwiającą tworzenie stron no-code, czyli jest tak zwanym narzędziem CMS. Jego system opiera się na intuicyjnym interfejsie, a jego największą zaletą jest możliwość instalacji dodatkowych wtyczek, które znacznie poszerzają horyzonty i możliwości tworzonych przez nas stron. Właśnie jedną z najpopularniejszych wtyczek jest elementor, którego głównym przeznaczeniem jest ułatwienie pracy przy tworzeniu stron WWW szczególnie dla początkujących użytkowników. Można korzystać z dwóch wariantów wtyczki tj. wersji darmowej i płatnej. Wersja z licencją płatną posiada znacznie szerszy wachlarz możliwości i funkcjonalności ze znacznie bardziej rozbudowanymi gotowymi elementami bloków. Głównymi zaletami zainstalowania tej wtyczki jest ułatwiona praca, którą zawdzięczamy prostemu i przejrzystemu interfejsowi edytora strony. Inną zaletą przemawiającą za tą wtyczką jest bogata biblioteka gotowych już szablonów, które wystarczą do rozpoczęcia pracy i edycji strony. Żeby wszystko działało jak należy, najlepiej zainwestować w odpowiedni hosting pod WordPress, gdyż to właśnie hosting będzie odpowiadał za szybką i dobrze funkcjonującą stronę w sieci.

Czym jest luka wtyczki Essential Addons?

Popularna wtyczka Essntial Addons dedykowana elementorowi posiada krytyczną lukę w zdalnym wykonaniu kodu (RCE z ang. Remote Code Execution) w wersji 5.0.4 i starszych. Luka umożliwia nieuwierzytelnionemu użytkownikowi przeprowadzenie ataku polegającego na połączeniu plików lokalnych, takich jak plik PHP, w celu wykonania kodu w witrynie. Błąd we wtyczce polegał na montowaniu plików ze sposobu, w jakim dane wejściowe użytkownika są zużywane przez funkcję include PHP. Ta zaś jest częścią funkcji cji ajax_load_more i ajax_eael_product_gallery. Stąd też jedynym warunkiem do przeprowadzenia ataku jest włączenie widżetów Dynamic Gallery i Product Gallery. Co warto podkreślić, szacuje się, że około miliona stron na WordPressie mogło zostać dotkniętych krytyczną luką w zabezpieczniach RCE, gdyż właśnie na tylu stronach pobrano to rozszerzenie.

Próby aktualizacji

Po odkryciu wtyczki natychmiast zaczęły się próby umożliwiające pokonanie nieprawidłowości. Luki nie udało się unicestwić podczas dwóch aktualizacji WordPrassa i dopiero wersja 5.0.5. naprawiła problem. Wiele stron automatycznie aktualizowało wersje WordPressa, jednak przed długi okres w sieci można było znaleźć strony nadal używające wersji 5.0.3 lub 5.0.4, lub starszych. Osoby korzystające z Essential Addons dla Elementora mogą zabezpieczyć swoje strony właśnie poprzez aktualizację i mogą to przeprowadzić w dwojaki sposób. Pierwszym z nich jest pobranie najnowszej aktualizacji z pojawiającego się komunikatu, a drugim manualne przejście do pulpitu nawigacyjnego WordPress i samodzielne uruchomienie aktualizacji właśnie z tego miejsca.

Próba aktualizacji w wersji 5.0.3 starała się rozwiązać problem poprzez wprowadzenie funkcji “sanitize_text_field” w danych wejściowych użytkowników. Nie przyniosło to jednak oczekiwanych rezultatów i wciąż możliwe było łączenie lokalnych plików. Druga próba, czyli 5.0.4 wprowadziła funkcję “sanitize_file_name”, której celem było usunięcie znaków specjalnych, takich jak kropki czy ukośniki, które miały “wyczyszczać” tekst. Ostatecznie udało się pokonać lukę w wersji 5.0.5, w której zaimplementowano funkcję “realpath” PHP. Wersja ta została wydana 28 stycznia 2022 roku.

Wtyczki WordPress są coraz to częstszym celem cyberprzestępców, którzy głównie atakują luki w ich zabezpieczeniach. Na szczęście w większości przypadków właściciele wtyczek starają się szybko reagować na problem wypuszczając nowe aktualizację. Jest to najistotniejszy z powodów, który ukazuje jak ważne są aktualizacje w świecie cybernetycznym.