PHP2Shell – krytyczne luki w PHP. Czy Twoja strona jest bezpieczna i jak się chronić?

21 października 2026 PHP wydał awaryjne poprawki dwóch krytycznych luk, które pozwalają przejąć serwer bez logowania. Sprawdź, czy Twoja strona jest zagrożona i jak się chronić – krok po kroku.

Obejrzyj w 2 minuty.

Najważniejsze informacje z artykułu w krótkim filmie z napisami. Kliknij rozdział, żeby przejść od razu do tematu.

Czym jest PHP2Shell?

21 października 2026 roku zespół PHP wydał awaryjne poprawki dwóch krytycznych luk w samym języku PHP. Nadano im numery CVE-2026-109618 i CVE-2026-109619, a w sieci szybko zaczęto je nazywać wspólnie PHP2Shell. Obie dostały ocenę 9,2 na 10 w skali CVSS v4.0 – to poziom „krytyczny”.

Dlaczego to ważne dla właściciela firmy? Na PHP działa WordPress, WooCommerce, PrestaShop i ogromna część stron firmowych oraz sklepów. Luki pozwalają zdalnie uruchomić dowolny kod na serwerze – bez logowania, bez hasła i bez kliknięcia kogokolwiek po Twojej stronie. W praktyce oznacza to możliwość przejęcia strony: kradzieży danych klientów, podmiany treści, wstrzyknięcia złośliwego kodu albo użycia serwera do rozsyłania spamu.

Jak działają te luki – w prostych słowach

  • CVE-2026-109619 to błąd typu use-after-free w mechanizmie, który śledzi postęp przesyłania plików (tzw. upload progress w sesjach PHP). PHP obsługuje go, zanim uruchomi się kod Twojej strony, dlatego zabezpieczenia w samej aplikacji czy we wtyczkach nie mają tu nic do powiedzenia.
  • CVE-2026-109618 to uszkodzenie pamięci, gdy żądanie przekroczy limit pamięci PHP w trakcie przygotowywania. PHP przerywa wtedy pracę w sposób, który zostawia wewnętrzne dane w niespójnym stanie – a to da się wykorzystać.

Dlaczego sprawa jest pilna

Szczegóły luk wyciekły do sieci 20 października, dwa dni przed planowaną publikacją i zanim poprawki były gotowe. PHP wydał więc wersje naprawcze w trybie awaryjnym następnego dnia. Firmy zajmujące się bezpieczeństwem, m.in. watchTowr, zaobserwowały pierwsze ataki już 21 października. To nie jest teoretyczne zagrożenie – boty skanują internet w poszukiwaniu niezałatanych serwerów.

Czy moja strona jest zagrożona?

Zagrożona jest praktycznie każda instalacja PHP, która obsługuje strony WWW i nie została zaktualizowana po 21 października 2026 – niezależnie od tego, czy PHP działa jako PHP-FPM, moduł Apache, php-cgi, LiteSpeed czy FrankenPHP. Według zespołu PHP największe ryzyko dotyczy serwerów z PHP uruchomionym jako moduł Apache (mod_php), bo atak może się udać, zanim uruchomi się jakikolwiek kod strony.

Wersja PHPZagrożoneCo zrobić
8.5starsze niż 8.5.12aktualizacja do 8.5.12 lub nowszej
8.4starsze niż 8.4.27aktualizacja do 8.4.27 lub nowszej
8.3starsze niż 8.3.36aktualizacja do 8.3.36 lub nowszej
8.2starsze niż 8.2.35aktualizacja do 8.2.35 lub nowszej
8.1, 8.0, 7.4wszystkiebrak oficjalnego wydania – łatka od dostawcy systemu lub wsparcia LTS albo przejście na nowsze PHP
7.3 i starsze (w tym PHP 5)wszystkiebrak poprawki – tylko przejście na nowsze PHP

Uwaga: dystrybucje Linuksa, np. Debian czy Ubuntu, często wgrywają poprawki bezpieczeństwa bez zmiany głównego numeru wersji. Jeśli serwer korzysta z PHP z repozytorium systemu, sprawdź komunikat bezpieczeństwa swojej dystrybucji, a nie tylko numer wersji.

Jak sprawdzić, jaką wersję PHP ma Twoja strona

  • Hosting współdzielony – w panelu klienta, zwykle w sekcji „Wersja PHP” lub „Konfiguracja PHP”.
  • WordPress – w kokpicie: Narzędzia → Zdrowie witryny → Informacje → Serwer.
  • Własny serwer lub VPS – polecenie php -v. Pamiętaj, że wersja w konsoli może różnić się od tej, która obsługuje stronę – w razie wątpliwości sprawdź konfigurację serwera WWW.

Jak się chronić – krok po kroku

1. Zaktualizuj PHP

To jedyne pełne rozwiązanie. Zespół PHP wprost podkreśla, że żadna zmiana konfiguracji nie usuwa w pełni tych podatności. Na hostingu wybierz w panelu wersję z poprawką albo zapytaj firmę hostingową, czy serwery są już załatane. Na własnym serwerze zainstaluj aktualizacje z repozytorium (np. sudo apt update && sudo apt upgrade w Debianie i Ubuntu) albo wersję z poprawką ze źródła, z którego instalowałeś PHP.

2. Zrestartuj PHP

Po aktualizacji uruchom ponownie wszystkie procesy PHP – inaczej stary, podatny kod dalej działa w pamięci. Przykładowo: sudo systemctl restart php8.3-fpm albo sudo systemctl restart apache2 (nazwy usług zależą od systemu i wersji).

3. Starsze PHP: łatka albo przesiadka

Dla PHP 7.4, 8.0 i 8.1 nie ma oficjalnych nowych wydań. Możesz skorzystać z poprawek przygotowanych przez dostawcę systemu lub firmę oferującą wsparcie LTS albo – co lepsze na dłuższą metę – przejść na wspierane PHP 8.2 lub nowsze. Dla PHP 7.3 i starszych zostaje tylko przesiadka. Przed zmianą wersji sprawdź na kopii strony, czy motyw i wtyczki działają poprawnie.

4. Gdy nie możesz zaktualizować od razu

Ogranicz dostęp do serwera z internetu, na przykład tylko do zaufanych adresów albo przez tymczasową stronę serwisową. Reguły zapory aplikacji (WAF) od dostawcy mogą zatrzymać część ataków, ale traktuj je wyłącznie jako tymczasową osłonę do czasu aktualizacji.

Co zrobić, jeśli strona mogła zostać zaatakowana

Jeżeli serwer działał na podatnej wersji, gdy ataki już trwały, sprawdź stronę pod kątem śladów włamania:

  • nieznane pliki PHP – szczególnie w katalogach na przesyłane pliki (np. wp-content/uploads),
  • nowe konta administratorów w panelu strony i w bazie danych,
  • dziwne przekierowania, reklamy lub obce linki na stronie,
  • nietypowe wpisy w logach serwera – np. seria żądań z przesyłaniem plików do przypadkowych adresów.

Gdy znajdziesz coś podejrzanego: zaktualizuj PHP, zmień wszystkie hasła (panel strony, hosting, FTP, baza danych), przywróć kopię zapasową sprzed ataku i poinformuj firmę hostingową. Jeśli mogło dojść do wycieku danych osobowych klientów, pamiętaj o obowiązkach z RODO – naruszenie zgłasza się do Prezesa UODO w ciągu 72 godzin od jego wykrycia.

Najczęstsze pytania

Mam stronę na WordPressie. Czy wystarczy zaktualizować WordPressa?

Nie. PHP2Shell to luka w PHP, czyli w oprogramowaniu serwera, a nie w WordPressie. Aktualizacja WordPressa i wtyczek jest zawsze dobrym pomysłem, ale tej luki nie usunie.

Czy wtyczka bezpieczeństwa mnie ochroni?

Nie można na tym polegać. Wtyczki działają w kodzie strony, a jedna z luk jest wykorzystywana, zanim ten kod w ogóle się uruchomi.

Mam hosting współdzielony. Czy muszę coś robić?

Firma hostingowa aktualizuje oprogramowanie serwerów, ale często to Ty wybierasz w panelu wersję PHP dla swojej strony. Sprawdź, czy wybrana wersja jest wspierana i załatana, a w razie wątpliwości zapytaj hosting wprost o poprawki PHP2Shell.

Potrzebujesz pomocy?

Nie wiesz, czy Twoja strona jest bezpieczna? Napisz do nas – sprawdzimy wersję PHP i pomożemy z aktualizacją. O innych typowych zagrożeniach dla stron firmowych pisaliśmy też w artykule o SQL injection.

Źródła

Masz pytanie do tego tematu?

Napisz albo zadzwoń. Odpowiemy konkretnie, bez sprzedażowego bełkotu.

Darmowa analiza Twojej firmy

Wolisz rozmawiać? +48 883 790 852 · Pn–Pt 10:30–20:30