ZAGROŻENIA NA STRONIE?  Naprawimy to. Do tego pierwszy miesiąc opieki strony tylko za 1 zł!  Użyj kodu AUDYT2026

Rank Math PRO z wirusem w aktualizacji (v 3.0.123)

20 października, 2026

W nocy z 15 na 16 października część stron, które same zaktualizowały Rank Math PRO, pobrała wersję 3.0.123 ze złośliwym kodem w środku. Taka strona wygląda i działa normalnie, a ktoś obcy może mieć w niej własne konto administratora i hasło do bazy danych. Opisuję, jak sprawdzić, czy to Twój przypadek, i co zrobić, bo przejście na 3.0.124 samo tego nie naprawia.

  • Okno ataku trwało 11 godzin. Zainfekowane paczki rozchodziły się od 22:02 15 października do 9:12 16 października czasu polskiego.
  • Numer wersji nie przesądza sprawy. Liczy się, kiedy strona pobrała 3.0.123, a strona z wersją 3.0.124 też może być zainfekowana, jeśli po drodze przeszła przez paczkę z tej nocy.
  • Darmowy Rank Math z katalogu WordPress.org nie jest objęty incydentem. Problem dotyczy wyłącznie płatnego dodatku PRO.
  • Bezpieczna droga to kopia sprzed 15 października. Bez niej trzeba ręcznie usunąć pliki i wpisy w bazie, które złośliwy kod zostawia poza katalogiem wtyczki, i zmienić wszystkie hasła oraz klucze.
  • Na 25 instalacjach PRO na naszych serwerach nie znaleźliśmy ani jednej wersji 3.0.123. Uratowało je to, że PRO nie aktualizował się tam od dawna, co samo w sobie jest osobnym ryzykiem.

Co się stało w nocy z 15 na 16 października

Ktoś wstrzyknął złośliwy kod do części paczek Rank Math SEO PRO 3.0.123, które producent rozsyłał jako zwykłą aktualizację. To atak na łańcuch dostaw, czyli włamanie nie na Twoją stronę, a do miejsca, z którego Twoja strona pobiera oprogramowanie. Strona z włączonymi automatycznymi aktualizacjami zrobiła dokładnie to, co powinna, i właśnie dlatego się zaraziła.

Luka dostała numer CVE-2026-111862 i ocenę 9,8 w skali do 10 od Wordfence. Kod po aktywacji zostawia na serwerze ukryte tylne furtki, czyli pliki, przez które atakujący wraca na stronę bez logowania. Kod odtwarza furtkę przy kolejnych odwiedzinach strony, zakłada nieznane konta administratorów, łączy się z domeną rank1cdn[.]com i może wynieść hasła do bazy danych oraz klucze API zapisane w WordPressie. Jeśli Twoja strona pobrała paczkę z tej nocy, sprawa przestaje być aktualizacją wtyczki i staje się usunięciem złośliwego kodu z WordPressa.

Rank Math usunął zainfekowane pliki ze swoich serwerów i wydał czystą wersję 3.0.124. Producent nie podał, ile stron dostało złą paczkę, a w opisie incydentu w SecurityWeek pada zalecenie, żeby stronę, która aktywowała 3.0.123 w tym oknie, traktować jako w pełni przejętą. Tak też do tego podchodzimy.

Jak sprawdzić, czy Twoja strona pobrała zainfekowaną wersję

Najpierw sprawdź, czy w ogóle masz PRO, a potem kiedy dokładnie się aktualizował. W panelu WordPressa wejdź w Wtyczki i poszukaj pozycji Rank Math SEO PRO. Jeśli widzisz tylko Rank Math SEO bez dopisku PRO, incydent Cię nie dotyczy.

Jeśli PRO jest na liście, sam numer wersji niewiele mówi. Zła paczka krążyła tylko przez 11 godzin, więc 3.0.123 pobrane wcześniej albo później może być czyste. Z drugiej strony strona, która w nocy pobrała 3.0.123, a dzień później sama przeszła na 3.0.124, pokazuje dziś bezpieczny numer, choć furtki zostały na serwerze. Dlatego bez daty aktualizacji ani rusz.

Datę znajdziesz na 3 sposoby. Wtyczka z dziennikiem zdarzeń (na przykład WP Activity Log) zapisuje każdą aktualizację z godziną. Bez niej zajrzyj przez FTP albo menedżer plików hostingu do katalogu wp-content/plugins/seo-by-rank-math-pro i sprawdź datę modyfikacji plików. Trzecie źródło to powiadomienia o automatycznych aktualizacjach, które WordPress wysyła na adres administratora.

Stan wtyczkiCo to znaczyCo zrobić
Tylko darmowy Rank MathIncydent Cię nie dotyczyNic
PRO starszy niż 3.0.123Zła paczka nie dotarłaWersja 3.0.124
PRO 3.0.123 pobrany poza oknemStrona najpewniej czystaWersja 3.0.124 i przegląd kont
PRO 3.0.123 pobrany w nocy 15/16 październikaStrona przejętaKopia sprzed 15.10 albo czyszczenie
PRO 3.0.124, ale w nocy był 3.0.123Strona przejęta mimo nowej wersjiJak wyżej
Nie wiesz, kiedy była aktualizacjaNie da się wykluczyć infekcjiJak przejętą, aż ustalisz datę

Ślady, które potwierdzają infekcję, to konta administratorów, których nikt z firmy nie zakładał, odwołania do domeny rank1cdn[.]com w plikach albo w bazie, nieoczekiwane pliki PHP z końcówką .cache, plik udający element rdzenia WordPressa i nowe zadania cron, czyli czynności, które serwer wykonuje sam według harmonogramu. Brak tych śladów nie oznacza jeszcze czystej strony, bo dobrze ukryta furtka nie musi rzucać się w oczy.

Dlaczego samo kliknięcie “Aktualizuj” niczego nie naprawia?

Aktualizacja do 3.0.124 podmienia pliki w katalogu wtyczki, a złośliwy kod z tej nocy nie siedzi tylko tam. Zostawia wpisy w bazie danych, pliki w innych katalogach i zadanie cron, które odtwarza furtkę przy kolejnych odwiedzinach. Nowa wersja wtyczki niczego z tego nie usuwa.

Świeżo pomalowana liliowa ściana, przez którą znów przebija ciemna plama, czyli furtka wracająca po samej aktualizacji wtyczki

Najprościej porównać to do wymiany zamka w drzwiach po włamaniu, kiedy złodziej zdążył dorobić klucz do bramy garażowej i zostawić uchylone okno w piwnicy. Nowy zamek jest dobry, ale dom dalej stoi otworem. Dlatego przy każdej infekcji powtarzamy klientom to samo: wtyczka bezpieczeństwa nie zrobi za Ciebie sprzątania po włamaniu, a skaner, który dziś nic nie znajduje, mógł po prostu nie znać tej furtki.

Jest też drugi powód, dla którego nie zostawiałbym sprawy na samej aktualizacji. Kod mógł już wynieść hasło do bazy danych zapisane w pliku wp-config.php i klucze API do płatności, poczty czy map. Te dane działają dalej, niezależnie od tego, jaką wersję wtyczki masz dziś na stronie.

Co zrobić krok po kroku, gdy strona pobrała paczkę z tej nocy?

Najkrótsza droga to przywrócenie całej strony, plików i bazy, z kopii zrobionej przed 15 października. Kopia musi pochodzić spoza serwera strony albo z niezależnego systemu kopii hostingu, bo kopia trzymana w tym samym katalogu mogła zostać podmieniona. Po przywróceniu i tak trzeba zmienić hasła, bo dane mogły wyciec, zanim strona wróciła do stanu z kopii.

Gdy takiej kopii nie ma, kolejność jest następująca:

  1. Zrób kopię obecnego stanu strony. Posłuży do analizy, nie do przywracania.
  2. Usuń cały katalog Rank Math PRO z serwera. Samo wyłączenie wtyczki w panelu nie wystarcza.
  3. Usuń z bazy wpisy zostawione przez złośliwy kod i zablokuj domenę rank1cdn[.]com.
  4. Porównaj pliki rdzenia WordPressa z oryginałem (polecenie wp core verify-checksums w WP-CLI) i przejrzyj katalogi pod kątem plików PHP, które nie powinny tam leżeć, w tym plików .cache.
  5. Sprawdź plik .htaccess, zadania cron i, jeśli masz dostęp SSH, plik z kluczami authorized_keys.
  6. Usuń konta administratorów, których nikt w firmie nie zakładał.
  7. Zmień wszystkie hasła i klucze: konta administratorów, bazę danych, FTP, panel hostingu, klucze API zapisane na stronie oraz klucze bezpieczeństwa w wp-config.php.
  8. Dopiero teraz zainstaluj czystą wersję 3.0.124 pobraną z konta Rank Math i przez tydzień obserwuj, czy nie pojawiają się nowe konta i pliki.

Jeśli strona to sklep albo trzyma dane klientów, na przykład zgłoszenia z formularzy, potraktuj incydent także jako sprawę prawną. RODO daje 72 godziny od stwierdzenia naruszenia na zgłoszenie go do UODO, gdy wyciek może zagrażać osobom, których dane dotyczą. Podejmij tę decyzję świadomie i ją zapisz, nawet jeśli wyjdzie, że zgłoszenie nie jest potrzebne. Szerszy opis objawów i czyszczenia znajdziesz w poradniku o tym, jak rozpoznać i usunąć wirusa ze strony WordPress.

Co znaleźliśmy na stronach na naszych serwerach?

19 października przejrzeliśmy wszystkie instalacje WordPressa na serwerach, którymi zarządzamy, łącznie z archiwalnymi kopiami i stronami bez aktywnej opieki. Było ich 93, Rank Math PRO miało 25. Żadna nie miała wersji 3.0.123, a najnowsze PRO, jakie znalazłem, to 3.0.88 z maja 2025 roku.

Nie traktuję tego wyniku jako sukcesu. Wtyczka, która od roku nie dostaje poprawek, nie pobierze złej paczki, ale nie pobierze też łatek na luki, które w tym czasie wyszły. Niedawno opisywałem odwrotną sytuację, kiedy przy krytycznej luce w WordPressie automatyczna aktualizacja nie zdążyła przed pierwszymi atakami. Ten sam mechanizm raz chroni, a raz zaraża, więc wyłączenie aktualizacji niczego nie rozwiązuje.

Na wszystkich 25 instalacjach wyłączyliśmy PRO, a darmowy Rank Math został na miejscu. Na 15 działających stronach sprawdziliśmy potem, czy strona się otwiera, czy dane strukturalne i znaczniki dla mediów społecznościowych są dalej w kodzie i czy mapa witryny odpowiada. Wszystko działało, a jedyna strona z niedziałającą mapą witryny miała ten problem już wcześniej, z włączonym PRO. Dla typowej strony firmowej darmowa wersja robi to, czego strona naprawdę używa.

Z tego incydentu wyciągam 2 wnioski dla każdej strony, nie tylko tej z Rank Math. Pierwszy to wiedza, co jest zainstalowane i kiedy się aktualizowało, bo bez daty nie odpowiesz nawet na pytanie, czy problem Cię dotyczy. Drugi to kopia zapasowa trzymana poza serwerem strony, z historią sięgającą co najmniej kilku tygodni wstecz, bo tylko ona daje szybki powrót do stanu sprzed infekcji. Jeśli chcesz, żeby te 2 rzeczy pilnował ktoś za Ciebie, sprawdź cennik opieki WordPress.

Osobna uwaga o kopiach PRO kupowanych poza sklepem producenta. W polskich wynikach na frazę rank math pro wysoko stoją oferty licencji po 13-20 zł. Przy takiej kopii nie masz pewności, skąd pochodzi paczka i kto ją wcześniej rozpakował, a ten incydent pokazał, że nawet oficjalna aktualizacja potrafi być zatruta.

Pytania i odpowiedzi

Czy darmowy Rank Math też był zainfekowany?

Nie. Incydent dotyczy płatnego dodatku Rank Math SEO PRO w wersji 3.0.123. Darmowy Rank Math z katalogu WordPress.org nie jest wymieniany jako zainfekowany.

Czy wystarczy zaktualizować Rank Math PRO do wersji 3.0.124?

Jeśli strona pobrała 3.0.123 w nocy z 15 na 16 października, nie wystarczy. Złośliwy kod zostawia pliki, wpisy w bazie i zadania cron poza katalogiem wtyczki, a aktualizacja ich nie usuwa. Potrzebna jest kopia sprzed 15 października albo pełne czyszczenie i zmiana haseł.

Skąd mam wiedzieć, kiedy wtyczka się zaktualizowała?

Najpewniej z dziennika zdarzeń, jeśli masz wtyczkę, która go prowadzi. Bez niej sprawdź datę modyfikacji plików w katalogu wtyczki przez FTP albo menedżer plików hostingu i poszukaj w poczcie powiadomień WordPressa o automatycznych aktualizacjach.

Czy po infekcji trzeba zgłosić naruszenie do UODO?

Zależy od danych na stronie. Jeśli złośliwy kod mógł dotrzeć do danych klientów, na przykład zamówień albo zgłoszeń z formularzy, a wyciek może im zagrażać, RODO daje 72 godziny od stwierdzenia naruszenia na zgłoszenie. Decyzję, także odmowną, warto zapisać.

Czy wyłączyć Rank Math PRO na stałe?

To zależy od tego, czy używasz funkcji, których nie ma w wersji darmowej. My wyłączyliśmy PRO na 25 instalacjach i na działających stronach dane strukturalne, znaczniki i mapa witryny pracowały dalej na darmowym Rank Math. Jeśli zostajesz przy PRO, instaluj go wyłącznie z konta u producenta.

Marcin Osak

Autor: Marcin Osak

Założyciel agencji interaktywnej Avangardo, którą prowadzi od 2008 roku. Tworzy strony i sklepy internetowe. Od lat pasjonuje się SEO, a od kilku lat także AI i optymalizacją stron pod wyszukiwanie generatywne (GEO). Ma za sobą ponad 1000 zrealizowanych projektów dla firm z całej Polski i Europy.

    Zapisz się do Newslettera

    Bądź zawsze na bieżąco, gdziekolwiek jesteś. Nowinki, darmowe porady i praktyczna wiedza.

    Zainteresuje Cię także
    Co sprawdzić, gdy płatności PayU albo Przelewy24 w WooCommerce przestają działać
    15 minut czytania

    Co sprawdzić, gdy płatności PayU albo Przelewy24 w WooCommerce przestają działać

    Płatności PayU albo Przelewy24 w WooCommerce nie działają lub zamówienia wiszą jako oczekujące? Sprawdź po kolei powiadomienia, klucze i ostatnie aktualizacje.
    Czytaj
    Luka w WordPressie do wersji 7.1.1, jak sprawdzić, czy Twoja strona jest bezpieczna
    10 minut czytania

    Luka w WordPressie do wersji 7.1.1, jak sprawdzić, czy Twoja strona jest bezpieczna

    Luka w WordPressie do 7.1.1 była atakowana w dniu wydania łatki, przed jej ogłoszeniem. Sprawdź wersję strony i ślady w logach, zanim uznasz sprawę za zamkniętą.
    Czytaj
    Wolny koszyk i checkout, czyli gdzie WooCommerce traci sekundy
    13 minut czytania

    Wolny koszyk i checkout, czyli gdzie WooCommerce traci sekundy

    Wolny koszyk i checkout w WooCommerce to utracone zamówienia. Zobacz, gdzie sklep traci sekundy, dlaczego cache tu nie pomaga i jak zmierzyć ścieżkę zakupu.
    Czytaj
    Pomoc
    techniczna

      Poproszę o pomoc

      Ta strona jest chroniona przez reCAPTCHA i Politykę prywatności Google oraz obowiązujące Warunki korzystania z usługi.

      Doskonale!

      Zgłoszenie zostało przyjęte.
      Wkrótce się z Tobą skontaktujemy.