Przejdź do treści
Technologie, bezpieczeństwo i praktyczne poradniki Szukaj w serwisie

portal technologiczny

Bezpieczeństwo

Click2Shell w WordPressie – jeden link może doprowadzić do uruchomienia kodu na serwerze

Click2Shell w WordPressie – luka bezpieczeństwa umożliwiająca wykonanie kodu na serwerze

WordPress otrzymał ważną aktualizację bezpieczeństwa. W wersji 7.1.1 naprawiono podatność nazwaną Click2Shell, która w odpowiednich warunkach pozwalała napastnikowi doprowadzić do instalacji motywu, a następnie uruchomienia własnego kodu PHP na serwerze. Najbardziej niepokojące jest to, że administrator nie musiał samodzielnie instalować żadnego pliku – punktem wyjścia mógł być odpowiednio przygotowany link.

Z tego artykułu dowiesz się:

  • czym jest Click2Shell i jak działa,
  • czy do ataku potrzebne jest hasło administratora,
  • które strony są zagrożone,
  • jak sprawdzić swoją wersję WordPressa,
  • co zrobić, aby zabezpieczyć stronę,
  • co sprawdzić, jeśli wcześniej kliknęło się podejrzany link.

Czym jest Click2Shell?

Click2Shell to nazwa nadana podatności odkrytej w WordPress Core przez badaczy z pwn.ai. Problem dotyczył mechanizmu wykorzystywanego podczas przeglądania i instalowania motywów z oficjalnego katalogu WordPress.org.

W normalnej sytuacji administrator wybiera motyw, przechodzi do jego podglądu i dopiero później decyduje, czy chce go zainstalować. W podatnej wersji WordPressa specjalnie przygotowany adres mógł jednak sprawić, że przeglądarka administratora sama uruchomi akcję instalacji.

Problem wynikał z tego, że ta sama wartość z adresu URL była interpretowana na dwa różne sposoby. Serwer WordPress.org ją oczyszczał, natomiast kod JavaScript działający w panelu administratora wykorzystywał jej pierwotną postać.

W praktyce umożliwiało to takie przygotowanie linku, aby kod panelu WordPressa potraktował jego fragment jak element selektora i sam uruchomił przycisk instalacji motywu.

Administrator niczego nie musiał zatwierdzać.

Samo zainstalowanie motywu to jeszcze nie przejęcie strony

To ważne rozróżnienie, ponieważ określenie „zdalne wykonanie kodu” może sugerować, że samo wejście na dowolną stronę natychmiast daje atakującemu pełną kontrolę nad WordPressem.

Tak nie jest.

Podstawowa luka Click2Shell umożliwiała zdalne wymuszenie instalacji motywu znajdującego się w oficjalnym katalogu WordPress.org. Nie pozwalała sama w sobie przesłać dowolnego przygotowanego przez atakującego motywu.

Badacze poszli jednak krok dalej.

Znaleźli motyw, którego kod zawierał dodatkową podatność. Wykorzystali fakt, że WordPress podczas podglądu nieaktywnego motywu może załadować jego kod PHP. Dzięki temu możliwe było połączenie kilku słabości w jeden łańcuch ataku.

W uproszczeniu wyglądało to tak:

  1. administrator otwiera odpowiednio przygotowany link,
  2. WordPress automatycznie instaluje wybrany motyw z katalogu,
  3. motyw nadal pozostaje nieaktywny, więc wygląd strony się nie zmienia,
  4. uruchomiony zostaje jego podgląd,
  5. podatny kod motywu pozwala wykonać kolejną akcję,
  6. na serwer trafia kod kontrolowany przez atakującego.

Dopiero cały ten łańcuch prowadzi do wykonania PHP na serwerze.

Najważniejszy warunek jest taki: atak wymaga działania użytkownika posiadającego odpowiednie uprawnienia administratora WordPressa.

Napastnik nie musi znać hasła ani wcześniej posiadać konta w WordPressie. Nie oznacza to jednak, że może przejąć dowolną stronę bez żadnej interakcji.

Typowy scenariusz przypomina phishing.

Administrator jest zalogowany do panelu WordPressa i otrzymuje link – na przykład przez e-mail, komunikator lub system obsługi zgłoszeń. Po jego otwarciu przeglądarka korzysta z aktywnej sesji administratora.

To właśnie jego uprawnienia mogą zostać wykorzystane do wykonania kolejnych operacji.

Zwykły czytelnik strony, subskrybent, autor czy redaktor nie wystarczą do uruchomienia opisanego scenariusza.

To jednocześnie dobry przykład tego, dlaczego podejrzanych linków warto unikać również wtedy, gdy pozornie prowadzą jedynie do własnego panelu WordPressa. Jeśli masz wątpliwości po otwarciu nietypowego adresu, zobacz również, co zrobić po kliknięciu podejrzanego linku.

Dlaczego atak może pozostać niezauważony?

Jednym z ciekawszych elementów Click2Shell jest to, że zainstalowany w pierwszej fazie motyw nie musi zostać aktywowany.

Aktualny wygląd strony pozostaje więc bez zmian.

Administrator nie zobaczy nagle nowego szablonu na stronie głównej ani oczywistego komunikatu informującego, że motyw został zmieniony.

Podejrzany motyw może po prostu pojawić się w katalogu:

wp-content/themes/

Dlatego sam fakt, że strona wygląda normalnie, nie oznacza jeszcze, że nic się nie wydarzyło.

WordPress 7.1.1 naprawia Click2Shell

Poprawka została udostępniona 17 września 2026 roku wraz z WordPressem 7.1.1.

Była to większa aktualizacja bezpieczeństwa zawierająca łącznie 11 poprawek związanych z bezpieczeństwem, a także poprawki błędów WordPress Core i edytora blokowego.

W przypadku Click2Shell zmieniono sposób, w jaki WordPress obsługuje nazwę motywu przekazaną w adresie.

Wartość jest teraz odpowiednio zabezpieczana przed wykorzystaniem jako element selektora, a kod ogranicza wyszukiwanie do rzeczywistych elementów reprezentujących motywy.

W efekcie specjalnie przygotowany adres nie może już spowodować „kliknięcia” przycisku instalacji przez JavaScript WordPressa.

Jak sprawdzić, czy mój WordPress jest bezpieczny?

Najprościej zalogować się do panelu administracyjnego i przejść do:

Kokpit → Aktualizacje

Jeśli dostępna jest aktualizacja WordPressa związana z bezpieczeństwem, nie warto jej odkładać.

W przypadku aktualnej gałęzi bezpieczną wersją zawierającą poprawkę jest WordPress 7.1.1.

WordPress przygotował również poprawki dla obsługiwanych starszych gałęzi systemu. Dlatego jeśli z jakiegoś powodu strona nie może jeszcze zostać przeniesiona na 7.1.1, należy przynajmniej zainstalować najnowszą aktualizację bezpieczeństwa dostępną dla używanej wersji.

Docelowo lepszym rozwiązaniem pozostaje jednak korzystanie z aktualnej wersji WordPressa.

Przed aktualizacją zrób kopię zapasową

Aktualizacji bezpieczeństwa nie powinno się odkładać, ale w przypadku strony produkcyjnej dobrze mieć możliwość szybkiego powrotu do poprzedniego stanu.

Przed aktualizacją warto więc wykonać kopię:

  • plików WordPressa,
  • katalogu wp-content,
  • bazy danych.

Szerzej opisywaliśmy to w poradniku o tym, czy warto tworzyć kopie zapasowe.

Po wykonaniu backupu aktualizujemy WordPressa, a następnie sprawdzamy stronę główną, kilka wpisów lub podstron oraz panel administracyjny.

Jeżeli strona działała na podatnej wersji WordPressa, a administrator w ostatnich tygodniach otworzył nietypowy link prowadzący do panelu, warto przeprowadzić dodatkową kontrolę.

1. Sprawdź zainstalowane motywy

Wejdź w:

Wygląd → Motywy

i sprawdź, czy nie pojawił się tam motyw, którego sam nie instalowałeś.

Warto pamiętać również o motywach nieaktywnych.

2. Sprawdź wtyczki

Przejrzyj listę zainstalowanych wtyczek i zwróć uwagę zarówno na aktywne, jak i nieaktywne pozycje.

Nieznanej wtyczki nie warto od razu aktywować czy otwierać. Najpierw należy ustalić jej pochodzenie.

3. Sprawdź użytkowników

W sekcji:

Użytkownicy → Wszyscy użytkownicy

warto sprawdzić, czy nie pojawiło się dodatkowe konto administratora.

4. Sprawdź pliki strony

Jeżeli mamy dostęp do hostingu, warto skontrolować ostatnio zmodyfikowane pliki przede wszystkim w:

wp-content/plugins/

wp-content/themes/

oraz w katalogu głównym WordPressa.

Szczególną uwagę powinny zwrócić nieznane pliki PHP utworzone w ostatnim czasie.

5. Zmień hasła i sesje administratorów

W przypadku realnego podejrzenia włamania sama aktualizacja WordPressa nie wystarczy.

Należy zmienić hasła administratorów, konta hostingowego, FTP/SFTP oraz – jeśli istnieją podstawy, aby podejrzewać ich ujawnienie – dane dostępowe do bazy.

Warto również zakończyć aktywne sesje użytkowników.

Dodatkowe zabezpieczenie: blokada modyfikacji plików

W bardziej restrykcyjnie skonfigurowanych instalacjach WordPressa można zablokować możliwość instalowania motywów i wtyczek bezpośrednio z panelu.

Służy do tego między innymi ustawienie:

DISALLOW_FILE_MODS

Nie jest to rozwiązanie wygodne dla każdego. Uniemożliwia ono bowiem również normalne instalowanie i aktualizowanie komponentów z poziomu panelu WordPressa.

Na stronach zarządzanych przez administratora lub agencję, gdzie aktualizacje wykonywane są w kontrolowany sposób, może jednak stanowić dodatkową warstwę zabezpieczeń.

W przypadku Click2Shell miało to konkretne znaczenie – jeżeli WordPress nie mógł instalować nowych motywów, pełny opisany przez badaczy łańcuch prowadzący do wykonania kodu nie mógł zostać przeprowadzony w ten sam sposób.

Aktualizacja jest ważniejsza niż instalowanie kolejnych zabezpieczeń

Przy okazji podobnych podatności łatwo dojść do wniosku, że potrzebujemy kolejnej wtyczki bezpieczeństwa, firewalla albo rozbudowanego systemu skanowania.

Takie rozwiązania mogą być przydatne, ale tutaj pierwsza czynność jest znacznie prostsza:

zaktualizować WordPressa.

Click2Shell został już naprawiony, a szczegóły techniczne podatności i sposób jej wykorzystania są publicznie znane. To sprawia, że odkładanie aktualizacji ma obecnie znacznie mniej sensu niż przed ujawnieniem szczegółów błędu.

Warto też pamiętać, że WordPress 7.1.1 naprawia nie tylko Click2Shell. W tej samej wersji znalazło się dziesięć innych poprawek bezpieczeństwa.

Jeżeli więc od dłuższego czasu ignorujesz komunikat o dostępnej aktualizacji WordPressa, tym razem naprawdę warto się nim zainteresować.

Przewijanie do góry