Popularny plugin Forminator Forms dla WordPressa zawierał poważną podatność, która mogła pozwolić nieuwierzytelnionym atakującym na usuwanie dowolnych plików z serwera. Problem jest szczególnie istotny ze względu na skalę wykorzystania wtyczki – w momencie ujawnienia podatności Forminator był aktywnie zainstalowany na ponad 600 tysiącach stron internetowych.

Co ciekawe, w przypadku tego błędu zagrożeniem nie było bezpośrednie przesyłanie złośliwego pliku na serwer, ale możliwość wskazania ścieżki do istniejącego pliku, który następnie mógł zostać usunięty. W odpowiednich warunkach atak mógł doprowadzić nawet do przejęcia całej witryny.

Materiał z Malware News opisuje tę podatność jako arbitrary file upload.

Problem znajdował się w obsłudze załączników

Podatność otrzymała oznaczenie CVE-2025-6463 i została sklasyfikowana z oceną CVSS 8.8, czyli High. Dotyczyła wersji Forminator 1.44.2 i wcześniejszych, natomiast poprawka została udostępniona w wersji 1.44.3.

Błąd znajdował się w funkcji entry_delete_upload_files, odpowiedzialnej za usuwanie plików powiązanych ze zgłoszeniami przesyłanymi za pomocą formularzy. Problem polegał na niewystarczającej walidacji ścieżki pliku.

W normalnym scenariuszu funkcja powinna usuwać wyłącznie pliki, które rzeczywiście zostały wcześniej przesłane za pomocą konkretnego formularza. Implementacja pozwalała jednak na dostarczenie odpowiednio spreparowanych danych, zawierających ścieżkę do innego pliku znajdującego się na serwerze.

Otwierało to drogę do arbitrary file deletion, czyli usuwania plików znajdujących się poza katalogiem przeznaczonym do przechowywania uploadów.

Atakujący nie potrzebował konta administratora

Jednym z najbardziej niepokojących faktów dotyczących tej podatności był brak konieczności posiadania konta w WordPressie.

Atakujący mógł przygotować odpowiednio spreparowane zgłoszenie formularza i umieścić w jego danych informację wskazującą na interesujący go plik. Sama operacja usunięcia następowała później, gdy zgłoszenie zostało skasowane – ręcznie przez administratora albo automatycznie, jeżeli dana instalacja miała skonfigurowaną funkcję automatycznego usuwania wpisów.

Oznacza to, że podatność posiadała dość nietypowy model eksploatacji. Napastnik nie musiał wywołać operacji usuwania pliku bezpośrednio. Wystarczyło stworzyć odpowiednio spreparowane zgłoszenie i doprowadzić do sytuacji, w której zostanie ono usunięte.

W praktyce mogło to być szczególnie interesujące dla automatycznych botów generujących spamowe zgłoszenia.

Najgroźniejszy cel? wp-config.php

Sama możliwość usuwania przypadkowych plików może być poważnym problemem, ale sytuacja staje się znacznie bardziej niebezpieczna, gdy atakujący może wskazać wp-config.php.

Plik ten zawiera między innymi dane dostępowe do bazy danych WordPressa oraz podstawową konfigurację instalacji.

Usunięcie wp-config.php powoduje, że WordPress przestaje odnajdywać swoją konfigurację i może przejść do stanu, w którym instalacja wygląda jak nowa. W określonym scenariuszu atakujący może następnie spróbować przeprowadzić proces instalacji, wskazując bazę danych pozostającą pod jego kontrolą.

W efekcie pozornie prosta operacja usunięcia jednego pliku może zostać przekształcona w pełne przejęcie strony. Autorzy posta wskazują właśnie możliwość usunięcia wp-config.php jako jeden ze scenariuszy prowadzących do remote code execution i całkowitego przejęcia witryny.

Dlaczego podatność była aż tak niebezpieczna?

Forminator jest wykorzystywany przede wszystkim do tworzenia formularzy kontaktowych, formularzy płatności oraz niestandardowych formularzy na stronach WordPress.

Tego typu komponenty często mają możliwość przyjmowania danych od użytkowników niezalogowanych. Właśnie dlatego podatności związane z niewłaściwą walidacją danych wejściowych w pluginach formularzowych mogą mieć znacznie większy zasięg niż błędy wymagające zalogowania do panelu administracyjnego.

W tym przypadku szczególnie niebezpieczne było połączenie kilku elementów: dostępnego publicznie formularza, braku odpowiedniej walidacji ścieżki, możliwości manipulowania metadanymi zgłoszenia oraz późniejszego usunięcia wpisu.

Nie trzeba było więc przejmować konta administratora, aby rozpocząć cały łańcuch ataku.

Historia poprawki

Badacz Phat RiO – BlueRock zgłosił problem do programu Wordfence Bug Bounty 20 czerwca 2025 roku. Za odkrycie otrzymał 8100 dolarów, co w tamtym momencie oznaczało najwyższą nagrodę wypłaconą w ramach programu.

Deweloper Forminatora opublikował poprawioną wersję 1.44.3 30 czerwca 2025 roku, czyli zaledwie kilka dni przed publicznym ujawnieniem informacji o podatności.

Wordfence udostępnił również regułę firewall chroniącą użytkowników przed próbami wykorzystania luki. Klienci płatnych wersji otrzymali ochronę wcześniej, natomiast użytkownicy wersji darmowej zostali objęci nią później.

Historia Forminatora pokazuje, że pojedyncza poprawka nie oznacza końca problemów bezpieczeństwa związanych z popularną wtyczką.

W 2026 roku dla Forminatora zgłaszano kolejne podatności związane między innymi z niewłaściwym uwierzytelnianiem oraz ujawnianiem informacji. Przykładowo CVE-2026-6222 dotyczyło braku odpowiedniej kontroli uprawnień przy operacjach administracyjnych i obejmowało wersje do 1.51.1.

Z kolei CVE-2026-5192 dotyczyło podatności typu path traversal, która w określonej konfiguracji pozwalała nieuwierzytelnionemu atakującemu odczytywać dowolne pliki z serwera. Problem występował w wersjach do 1.52.1 i wymagał między innymi publicznie dostępnego formularza z polem File Upload oraz odpowiednio skonfigurowanej funkcji Save and Continue.

To dobry przykład problemu charakterystycznego dla dużego ekosystemu WordPressa. Popularna wtyczka może posiadać setki tysięcy instalacji, a jednocześnie rozwijać skomplikowaną logikę obsługi danych, plików i uprawnień. Każdy taki komponent zwiększa potencjalną powierzchnię ataku.

Jak sprawdzić, czy strona jest bezpieczna?

Pierwszym krokiem powinno być zweryfikowanie wersji Forminatora. W przypadku podatności CVE-2025-6463 należy upewnić się, że używana jest wersja 1.44.3 lub nowsza, a najlepiej aktualna wersja pluginu, dostępna obecnie w repozytorium WordPressa.

Sama aktualizacja nie powinna być jednak jedynym działaniem po potencjalnym incydencie. Jeżeli witryna korzystała z podatnej wersji, warto przeanalizować logi HTTP i WordPressa pod kątem nietypowych zgłoszeń formularzy, dużej liczby automatycznie tworzonych wpisów oraz operacji wykonywanych krótko przed usunięciem zgłoszeń.

W przypadku podejrzenia wykorzystania podatności należy również sprawdzić integralność wp-config.php, plików WordPress Core oraz katalogów wp-content/uploads. Szczególną uwagę warto zwrócić na nowe pliki PHP umieszczone w katalogach przeznaczonych pierwotnie na obrazy i inne materiały użytkowników.

Podsumowanie

Podatność w Forminatorze pokazuje, jak pozornie niewielki błąd w obsłudze ścieżek plików może prowadzić do bardzo poważnych konsekwencji.

Możliwość usunięcia dowolnego pliku z serwera nie oznacza automatycznie przejęcia WordPressa, ale w przypadku odpowiednio dobranego celu – takiego jak wp-config.php – może stać się elementem łańcucha prowadzącego do całkowitego przejęcia witryny.

Najważniejszym zabezpieczeniem pozostaje aktualizacja wtyczki. Jednocześnie administratorzy powinni pamiętać, że popularne pluginy WordPressa są atrakcyjnym celem dla cyberprzestępców właśnie ze względu na ogromną liczbę instalacji. Jedna podatność w komponencie używanym przez setki tysięcy stron może dać bardzo szerokie możliwości prowadzenia zautomatyzowanych kampanii.