Strona na WordPressie z wtyczką Ninja Forms do wersji 3.15.3 albo WPC Product Bundles do 8.6.6 może mieć ukryte konto administratora. Nie widać go w panelu i nie usuwa go ani aktualizacja, ani skasowanie wtyczki. Firma Patchstack, która zajmuje się bezpieczeństwem WordPressa, opisała 6 października kampanię wykorzystującą luki w obu wtyczkach od 4 października. Do ataku wystarczy anonimowe wysłanie formularza albo złożenie zamówienia w sklepie. Szkodliwy kod uruchamia się, gdy zalogowany administrator otworzy to zgłoszenie w panelu.
Co się stało: dwie luki we wtyczkach WordPressa i jeden atak
Obie luki to tak zwany zapisany XSS (stored cross-site scripting). Atakujący wkleja do pola formularza fragment kodu JavaScript, WordPress zapisuje go w bazie, a przeglądarka administratora uruchamia go przy wyświetleniu wpisu. Patchstack klasyfikuje obie jako luki bez uwierzytelnienia: atakujący nie potrzebuje konta na stronie. Konto ma tylko ofiara, czyli administrator, który zajrzy w zgłoszenie.
- Ninja Forms (CVE-2026-94504) to wtyczka do formularzy kontaktowych z ponad 500 tys. aktywnych instalacji. Ładunek przychodzi zwykłą drogą wysyłki formularza, a wykonuje się w starym edytorze zgłoszeń w panelu.
- WPC Product Bundles for WooCommerce (CVE-2026-93836) służy do sprzedaży zestawów produktów i ma ponad 30 tys. instalacji. Tu kod trafia w pole ilości i zapisuje się w danych zamówienia.
Patchstack zauważył pierwszy atak 4 października przy WPC Product Bundles, a dzień później ten sam ładunek przy wtyczce do formularzy. Obie luki opublikowano 22 września. Domenę, z której pobierany jest szkodliwy skrypt, zarejestrowano 1 października. Firma ocenia skalę wykorzystania jako ograniczoną. Zastrzega jednak, że dwie wtyczki to tyle, ile potwierdziła, a nie ostateczna liczba, bo ten sam skrypt da się podpiąć pod dowolną podobną lukę. Liczba instalacji nie oznacza liczby ofiar: tylu zhakowanych stron nikt nie podał. Amerykańska agencja CISA nie dopisała dotąd żadnej z luk do katalogu podatności wykorzystywanych w atakach (stan na 7 października).
Frontend Master 2026 · Kodożercy
Pisz kod, nie tylko prompty
Frontend Master 2026 to pakiet sześciu kursów Kodożerców (HTML, CSS, JavaScript, Git) w polskim wideo z 12-miesięcznym dostępem. Fundamenty frontu od pierwszej linijki kodu do deploy.
Wchodzę w to →

Które wersje Ninja Forms i WPC Product Bundles są bezpieczne
Poprawki są dostępne od września. Zalecamy najnowsze wydania, bo po pierwszej łatce obie wtyczki dostały kolejne poprawki zabezpieczeń przed tym samym typem ataku.
| Wtyczka | Podatne wersje | Pierwsza wersja z poprawką | Późniejsze poprawki XSS (changelog) |
|---|---|---|---|
| Ninja Forms | do 3.15.3 | 3.15.4 (21 września 2026) | 3.15.5 (28 września 2026) |
| WPC Product Bundles for WooCommerce | do 8.6.6 | 8.6.7 | 8.7.3 |
Aktualizacja zamyka drogę wejścia. Nie usuwa tego, co atakujący zostawił na stronie, jeśli skrypt zdążył się uruchomić. Według analizy Patchstacka kampania jest zaprojektowana tak, żeby przetrwać usunięcie luki.
Strona firmowa, która zbiera zapytania od klientów
Projektujemy strony dla firm na WordPressie: szybkie, wygodne na telefonie i przygotowane pod Google. Pomożemy też napisać treści, które jasno tłumaczą, co sprzedajesz.
Jak działa atak: od formularza kontaktowego do czterech dróg powrotu
Skrypt nie kradnie hasła ani ciasteczka administratora. Działa w jego otwartej sesji i wykonuje w panelu te same czynności, które wykonałby administrator. Instaluje wtyczkę udającą “WP Smart Thumbnails” 1.2.4 firmy “MediaPress Labs”, zakłada nowe konto administratora i zgłasza wynik na serwer atakującego. Według Patchstacka po jednym udanym uruchomieniu atakujący ma cztery niezależne wejścia na stronę:
- Widoczne konto administratora założone przez skrypt. Tylko to da się zauważyć w panelu.
- Ukryte konto administratora. Wtyczka typu must-use, która ładuje się zawsze i której nie da się wyłączyć z panelu, wycina je z listy użytkowników, z filtra “Administrator” i z liczników ról. Nazwa konta pochodzi ze słownika około 50 niewinnych słów, takich jak support, updater, maintenance czy backup. Adres e-mail kończy się na @wordpress.org.
- Tajny adres logowania
/wp-login.php?_wplogin=<token>. Loguje bez hasła jako najstarsze konto administratora na stronie, zwykle konto właściciela. W dziennikach, które zapisują tylko identyfikator użytkownika, nie da się go odróżnić od prawdziwego logowania. - Menedżer plików bez hasła wewnątrz fałszywej wtyczki. Pozwala wgrywać i zmieniać pliki na serwerze każdemu, kto zna ścieżkę.
Patchstack pisze wprost, że usunięcie podatnej wtyczki, a nawet fałszywej, nie zamyka trzech ostatnich wejść. Pliki zostawione przez atakujących mają też postarzone daty modyfikacji, więc nie wyjdą w wyszukiwaniu ostatnio zmienionych plików.
Ślady ataku: wskaźniki z analizy Patchstacka
Poniższe wskaźniki pochodzą z telemetrii Patchstacka. Firma zaznacza, że nie są pełną listą dla obu luk. Wtyczki must-use są zaciemniane osobnym kluczem na każdej stronie, więc szuka się ich po ścieżce, a nie po sumie kontrolnej.
| Gdzie szukać | Wskaźnik |
|---|---|
| Domena ładunku i serwera atakującego | imgcdn1.com (/fz/x.js, /fz/c.php) |
| Fałszywa wtyczka | katalog wp-content/plugins/wp-smart-thumbnails/, plik emer-run.php; “WP Smart Thumbnails” 1.2.4, “MediaPress Labs” |
| Wtyczki must-use | wp-content/mu-plugins/class-wp-query-<8 znaków szesnastkowych>.php, wp-content/mu-plugins/class-wp-token-validate.php |
| Opcje w bazie | fz_emer_done_v1, fz_emer_login_tokens |
| Tajne logowanie w logach serwera | wp-login.php z parametrem _wplogin |
| Pamięć lokalna przeglądarki administratora (Local Storage) | klucz zaczynający się od __xp_v9_ |
| Menedżer plików | tytuł strony “Moon, tell me if I could” |
| Adresy IP ataków | 204.8.96.109, 147.90.235.22, 90.184.10.74, 94.16.115.121, 43.250.53.42 |
Cztery z pięciu adresów IP to węzły sieci Tor, więc samo ich zablokowanie nie chroni na dłużej.
Jak sprawdzić, czy strona WordPress ma ukryte konto administratora
Ukrytego konta nie widać w panelu, dlatego listę administratorów trzeba pobrać prosto z bazy danych. Potrzebny jest dostęp do phpMyAdmina u hostingodawcy albo do konsoli bazy.
- Uruchom zapytanie z analizy Patchstacka. Jeśli tabele mają inny prefiks niż
wp_, zamień go we wszystkich miejscach, także wwp_capabilities:
SELECT u.user_login, u.user_email, u.user_registered
FROM wp_users u
JOIN wp_usermeta m ON m.user_id = u.ID
WHERE m.meta_key = 'wp_capabilities'
AND m.meta_value LIKE '%administrator%';
- Porównaj wynik z listą w panelu (Użytkownicy, filtr Administrator). Konto obecne w bazie, a niewidoczne w panelu, ukrywa wtyczka atakujących.
- Zwróć uwagę na konta z adresem @wordpress.org, nazwy w rodzaju support czy updater i konta założone w dniu, w którym ktoś przeglądał zgłoszenia formularzy albo zamówienia.
- Przez menedżera plików hostingu albo FTP zajrzyj do katalogu
wp-content/mu-plugins/. Takich wtyczek nie ma na zwykłej liście wtyczek, a w panelu nie da się ich wyłączyć. Pliki sprawdzaj po nazwie i zawartości, a nie po dacie. - Sprawdź tabelę opcji:
SELECT option_name FROM wp_options WHERE option_name IN ('fz_emer_done_v1', 'fz_emer_login_tokens');. Obecnośćfz_emer_login_tokensoznacza, że działa co najmniej jeden tajny adres logowania. - Przeszukaj logi serwera pod kątem
imgcdn1.com,_wplogini bezpośrednich odwołań do plików wtyczkiwp-smart-thumbnails.
Co zrobić, jeśli strona jest zainfekowana
Patchstack zaleca traktować jako przejętą każdą stronę, na której skrypt uruchomił się w przeglądarce administratora. Sprzątanie obejmuje kilka kroków naraz, bo każdy element może odtworzyć pozostałe:
- usuń obce konta, fałszywą wtyczkę i pliki z
mu-plugins, potem opcjefz_emer_done_v1ifz_emer_login_tokens. Samo skasowanie opcji nie wystarczy, bo pozostawione wtyczki wystawią nowy token; - zmień hasła wszystkich kont z uprawnieniami administratora. Hasło najstarszego administratora uznaj za skompromitowane, choć nikt go nie ukradł;
- wymień klucze uwierzytelniające WordPressa (tzw. salts w pliku
wp-config.php), żeby unieważnić otwarte sesje; - przejrzyj pliki i bazę pod kątem innych zmian. Menedżer plików pozwalał wgrać dowolny kod.
Przy sklepie z danymi klientów warto też ocenić, czy doszło do naruszenia danych osobowych, które trzeba zgłosić. Inne niedawne ataki na WordPressa i jego wtyczki opisywaliśmy przy krytycznej luce w WordPressie 7.1.2 i przy wtyczkach z wbudowanym backdoorem.
Podsumowanie
Luki CVE-2026-94504 i CVE-2026-93836 w dwóch wtyczkach WordPressa pozwalają anonimowi zapisać szkodliwy skrypt w zgłoszeniu formularza albo w zamówieniu. Skrypt uruchamia się, gdy administrator otworzy wpis w panelu. Według Patchstacka od 4 października działa kampania, która w ten sposób instaluje fałszywą wtyczkę “WP Smart Thumbnails”, zakłada ukryte konto administratora i tajny adres logowania na konto najstarszego administratora. Poprawki wyszły we wrześniu: Ninja Forms 3.15.4 i WPC Product Bundles 8.6.7, a najlepiej od razu najnowsze wersje. Aktualizacja nie czyści jednak strony, na której atak się udał. Kto miał podatną wersję, powinien sprawdzić administratorów w bazie danych, katalog mu-plugins i opcje fz_emer, a w razie znaleziska usunąć wszystkie elementy, zmienić hasła i klucze.
Newsletter · DevstockAcademy & Kodożercy
Bądź na bieżąco ze światem IT, AI i automatyzacji
Co wtorek: newsy z branży, praktyczne tipy i narzędzia które warto znać. Zero spamu.



