Elementor to najpopularniejszy kreator stron dla WordPressa — ponad 10 milionów aktywnych instalacji. Płatna wersja Pro dokłada do tego budowniczego formularzy, popupów i sklepu, i właśnie w module obsługującym wysyłanie plików z formularza znaleziono błąd oceniony na 9.0 punktu w skali CVSS. CVE-2026-32475 pozwala niezalogowanemu napastnikowi wgrać na serwer plik PHP i wykonać go z uprawnieniami serwera WWW. Poprawka trafiła do wersji 4.2.2 wydanej 19 sierpnia 2026 roku.
Dwie pętle, które się nie dogadały
Mechanizm błędu jest podręcznikowym przykładem tego, jak subtelna niespójność w kodzie zamienia się w krytyczną podatność. Elementor sprawdza wysyłane pliki w jednej pętli, a przenosi je na docelowe miejsce w drugiej. Problem w tym, że obie inaczej traktują pustą pozycję w formularzu — czyli taki fragment żądania, w którym nazwa pliku jest pusta i PHP zgłasza to jako UPLOAD_ERR_NO_FILE.
Napastnik przygotowuje żądanie multipart, w którym pierwsza pozycja jest pusta, a druga zawiera złośliwy kod PHP. Pętla walidująca natrafia na pustkę, uznaje sprawę za zamkniętą i kończy pracę, nigdy nie zaglądając do drugiego elementu. Pętla przetwarzająca postępuje odwrotnie: pomija pustą pozycję i spokojnie przenosi resztę zawartości do publicznie dostępnego katalogu wp-content/uploads/elementor/forms/. Walidator widzi jedno, a moduł przenoszący plików — coś zupełnie innego.
Zostaje jeszcze kwestia odnalezienia wgranego pliku, bo jego nazwa jest generowana. Tyle że funkcja uniqid() nie jest losowa — opiera się na czasie. Napastnik może więc odgadnąć nazwę metodą brute force w wąskim oknie czasowym, a w niektórych konfiguracjach dokładny adres pliku przychodzi mu prosto na tacy w mailu z autorespondera formularza. Wystarczy potem wejść pod ten adres w przeglądarce, żeby interpreter PHP wykonał kod.
Kto faktycznie jest zagrożony
Tu pojawia się rozbieżność w komunikatach, na którą warto zwrócić uwagę. Patchstack, który koordynował zgłoszenie, twierdzi, że do ataku wystarczy opublikowany formularz Elementora z polem typu File Upload. Producent zawęża opis: podatne mają być wyłącznie strony, które dodatkowo mają włączoną opcję wysyłania wielu plików naraz, domyślnie wyłączoną. Elementor zaznacza jednak, że i tak zaleca aktualizację wszystkim.
W praktyce oznacza to, że najbardziej narażone są strony z formularzami kontaktowymi lub rekrutacyjnymi, gdzie użytkownik załącza CV, zdjęcie albo dokumentację. To dokładnie ten typ witryny, który agencje stawiają masowo dla lokalnych firm — a potem nikt do niego nie zagląda przez rok. Podatność zgłosił badacz Tin Pham 16 lipca, producent przygotował poprawkę już następnego dnia, ale opublikował ją dopiero 19 sierpnia. Na razie nie odnotowano prób wykorzystania w praktyce, co przy tak łatwo odtwarzalnym mechanizmie może się zmienić bardzo szybko.
Co zrobić
- Zaktualizuj Elementor Pro do wersji 4.2.2 lub nowszej. Aktualizacja samego darmowego Elementora nie załatwia sprawy — chodzi o wtyczkę Pro.
- Przejrzyj katalog
wp-content/uploads/elementor/forms/i sprawdź, czy nie ma tam plików.phpani innych podejrzanych rozszerzeń. Aktualizacja wtyczki nie usuwa tego, co napastnik zdążył wgrać wcześniej. - Zablokuj wykonywanie PHP w katalogu uploadów na poziomie serwera. W Apache robi się to wpisem w
.htaccess, w nginx regułąlocation. To zabezpieczenie, które działa również na przyszłe luki tej klasy — a takich w ekosystemie WordPressa nie brakuje. - Sprawdź logi serwera pod kątem żądań POST do
admin-ajax.phpz akcją formularza Elementora oraz późniejszych żądań GET do plików w katalogu uploadów. - Jeśli formularz z załącznikami nie jest Ci do niczego potrzebny, po prostu wyłącz pole upload. Najbezpieczniejsza funkcja to ta, której nie ma.
Podsumowanie
Wtyczka z dziesięcioma milionami instalacji to dla atakujących cel wart każdego wysiłku — jeden działający exploit otwiera dziesiątki tysięcy stron. CVE-2026-32475 przypomina też, że najgroźniejsze błędy rzadko wynikają z egzotycznych technik. Tutaj wystarczyło, że dwa fragmenty tego samego kodu inaczej zinterpretowały pusty formularz. Aktualizacja zajmuje minutę, sprawdzenie katalogu uploadów kolejnych kilka. Warto to zrobić dziś, zanim ktoś złoży exploita na podstawie opublikowanego opisu.
źródło: https://www.bleepingcomputer.com/news/security/critical-elementor-pro-bug-exposes-wordpress-sites-to-rce-attacks/ https://patchstack.com/articles/critical-unauthenticated-file-upload-to-rce-in-elementor-pro-plugin/