php2shell — krytyczne luki w PHP. Sprawdź wersję na swoim serwerze
- PHP
- WordPress
- Bezpieczeństwo
21 października 2026 roku CERT Polska opublikował komunikat o dwóch krytycznych podatnościach w PHP, nazwanych przez badaczy php2shell. Dzień później ostrzeżenie wydało też Ministerstwo Cyfryzacji, a Centralny Ośrodek Informatyki na czas wdrażania zabezpieczeń wyłączył część stron BIP.
Tym razem problem nie leży w WordPressie, wtyczce czy motywie, tylko w samym PHP, czyli w języku, na którym to wszystko działa. Dlatego dotyczy praktycznie każdej strony WordPress i każdego sklepu na WooCommerce.
Co to za luki
Chodzi o dwie podatności: CVE-2026-109618 i CVE-2026-109619. Obie wynikają z błędów w zarządzaniu pamięcią i obie pozwalają atakującemu zdalnie uruchomić dowolny kod na serwerze. Według zespołu PHP ocena to CVSS 9.2, czyli górna półka skali.
W skrócie:
- CVE-2026-109618: gdy PHP-owi zabraknie pamięci, przetwarzanie żądania może się przerwać w połowie.
- CVE-2026-109619: po obsłużeniu żądania w pamięci może zostać „resztka” stanu, który powinien już zniknąć. Następne żądanie obsługiwane przez ten sam proces może ją wykorzystać.
Najważniejsze dla właściciela strony: według zespołu PHP atakujący nie musi być zalogowany, a w przypadku mod_php (PHP jako moduł Apache) wykazano exploit, który działa, zanim uruchomi się jakikolwiek kod Twojej strony. Żadna wtyczka bezpieczeństwa w WordPressie nie zdąży więc zareagować.
Kogo to dotyczy
Podatne są wszystkie wersje PHP od 5.4 w górę, które obsługują ruch z sieci. Bez znaczenia jest sposób uruchomienia: PHP-FPM, mod_php, php-cgi, LiteSpeed i FrankenPHP są na liście. Największe ryzyko dotyczy mod_php.
Poprawione wersje to:
- PHP 8.5.12
- PHP 8.4.27
- PHP 8.3.36
- PHP 8.2.35
PHP 8.1 i starsze nie dostają już oficjalnych aktualizacji. Część dystrybucji Linuksa i dostawców wsparcia LTS przygotuje dla nich własne łatki, ale nie ma tu pewnego terminu. Jeśli Twoja strona nadal działa na PHP 7.4 czy 8.0, to naprawdę dobry moment, żeby się z nich przenieść.
Co zrobić już dziś
CERT i Ministerstwo mówią jasno: jedyną skuteczną ochroną jest instalacja poprawionej wersji PHP. W praktyce:
- Sprawdź, jakiej wersji PHP używa Twoja strona. W WordPressie znajdziesz ją w Narzędzia → Zdrowie witryny → Informacje → Serwer. Możesz też zajrzeć do panelu hostingu.
- Jeśli masz hosting współdzielony, sprawdź komunikaty swojego dostawcy. Większość dużych hostingów aktualizuje PHP sama, ale warto się upewnić, czy zrobiła to już na Twoim koncie. Gdy w panelu możesz wybrać wersję PHP, ustaw najnowszą z poprawką, z którą Twoja strona działa.
- Jeśli masz VPS lub własny serwer, aktualizacja jest po Twojej stronie. Zainstaluj poprawione pakiety z repozytorium dystrybucji i zrestartuj wszystkie procesy PHP (PHP-FPM, Apache). Bez restartu stara wersja dalej działa w pamięci.
- Przed zmianą wersji zrób kopię zapasową plików i bazy. Przy przejściu np. z 8.1 na 8.3 starsza wtyczka lub motyw może przestać działać, więc po aktualizacji przeklikaj stronę, a w sklepie przejdź całą ścieżkę zamówienia.
Jeśli nie da się zaktualizować od razu
Na czas oczekiwania na łatkę zespół PHP i CERT podają ustawienia, które zmniejszają ryzyko, ale go nie usuwają:
memory_limit = -1 ; jeśli serwer na to pozwala, w innym razie co najmniej 128M
post_max_size = 8M ; 32M, jeśli strona przyjmuje wysyłanie plików
max_input_vars = 1000
session.upload_progress.enabled = Off
Kilka ważnych uwag:
- Ustaw je w
php.ini, w konfiguracji puli PHP-FPM (php_admin_value) albo w konfiguracji serwera.ini_set()w kodzie ani.user.initu nie wystarczą. upload_max_filesizemusi być mniejsze niżpost_max_size.- Na PHP 8.5 dodatkowo ustaw
fatal_error_backtraces = 0. - Po zmianach zrestartuj wszystkie procesy PHP.
- Ukrywanie błędów (
display_errors,error_reporting) nic nie daje.
Przy memory_limit = -1 uważaj na serwerach z małą ilością pamięci. Limit warto wtedy ustawić na poziomie kontenera albo systemu, a nie PHP. Jeśli nie wiesz, gdzie to wszystko ustawić, nie zgaduj — zapytaj hosting albo napisz do mnie.
Co jeśli strona już mogła oberwać
Komunikaty mówią o ryzyku masowych prób ataku, więc warto zajrzeć, czy na serwerze nie dzieje się nic dziwnego: nowe konta administratorów w WordPressie, nieznane pliki PHP w wp-content/uploads, zmienione pliki rdzenia, nagły wzrost obciążenia serwera. Jeśli coś znajdziesz, zgłoś to do CERT Polska przez formularz na incydent.cert.pl.
Źródła:
Nie chcesz pilnować tego sam?
Jeśli nie wiesz, na jakiej wersji PHP działa Twoja strona, albo boisz się, że po zmianie coś przestanie działać, odezwij się. W ramach opieki nad stroną WordPress sprawdzę wersję PHP, przeprowadzę aktualizację razem z kopią zapasową i sprawdzę, czy strona i sklep działają jak należy.