PHP2Shell: krytyczne luki w PHP. Jak sprawdzić, czy Twoja strona jest bezpieczna?

PHP2Shell PHP Vulnerability Blog Cover
Dwie krytyczne luki w PHP mogą umożliwić przejęcie strony bez logowania. Sprawdź, które wersje PHP są zagrożone, jakie mogą być konsekwencje dla firmy i co warto zrobić teraz.
by Tom HermanOCT 23, 2026 - 10 MIN READ
Strony internetowe

21 października 2026 roku firmy i dostawcy hostingu pilnie aktualizowali serwery. Powód? Dwie krytyczne luki w PHP, które mogą umożliwić atakującym przejęcie strony bez logowania.

PHP napędza ogromną część internetu — od stron na WordPressie i sklepów WooCommerce po serwisy oparte na Drupalu, Joomli, Magento, Laravelu i rozwiązaniach tworzonych na zamówienie. Kiedy 20 października ujawniono szczegóły dwóch krytycznych błędów w samym PHP, stało się jasne, że nie chodzi o pojedynczą wtyczkę czy konkretny CMS. Zagrożenie może dotyczyć wielu różnych stron i systemów.

Serwisy administracji publicznej w Holandii, Niemczech i Francji były prewencyjnie wyłączane. Dostawcy hostingu prowadzili pilne prace serwisowe, a UptimeRobot odnotował 11 razy więcej alertów o niedostępności stron niż dzień wcześniej. Poprawki są już dostępne. Kluczowe jest jednak to, czy zostały wdrożone na serwerze, na którym działa Twoja strona.

W skrócie

  • Luki określono jako PHP2Shell (CVE-2026-109618 i CVE-2026-109619). Ocena: 9,2 na 10.
  • Dotyczą PHP od wersji 5.4, niezależnie od tego, na jakim CMS-ie czy frameworku działa strona.
  • Podstawowym sposobem usunięcia tych podatności jest aktualizacja PHP do 8.2.35, 8.3.36, 8.4.27 lub 8.5.12 albo poprawionego pakietu od dostawcy serwera.
  • PHP 8.1 i starsze nie dostaną oficjalnej poprawki. Jeśli Twoja strona korzysta z takiej wersji, zaplanuj jej aktualizację jak najszybciej.
  • Sama aktualizacja WordPressa lub wtyczek nie wystarczy. Poprawkę PHP musi wdrożyć dostawca hostingu albo administrator serwera.

Czym jest PHP2Shell i co poszło nie tak?

Obie luki dotyczą sposobu, w jaki PHP zarządza pamięcią podczas obsługi żądań. Problem występuje na poziomie środowiska PHP, a nie WordPressa czy kodu konkretnej strony. Dlatego podatna może być nawet bardzo prosta witryna, jeśli działa na wersji PHP bez odpowiedniej poprawki.

  • CVE-2026-109618 może zostać wywołana w sytuacji wyczerpania pamięci PHP. Odpowiednio przygotowane żądanie, przypominające przesłanie formularza z plikiem, prowadzi do błędu obsługi pamięci, którego skutki atakujący może wykorzystać.
  • CVE-2026-109619 dotyczy pamięci wykorzystywanej podczas obsługi kolejnych żądań. Jeden proces PHP może obsługiwać wielu użytkowników po kolei. Po wystąpieniu błędu w pamięci mogą pozostać dane poprzedniego żądania, do których uzyskuje dostęp kolejne.

W praktyce może to prowadzić do dwóch poważnych scenariuszy: zdalnego wykonania kodu bez logowania, a w konsekwencji przejęcia kontroli nad serwerem, oraz odczytu danych znajdujących się w jego pamięci. Mogą to być między innymi hasła, tokeny sesji, klucze API czy certyfikaty. Badacze z Wiz zaprezentowali działające ataki w środowiskach wykorzystujących aktualne wersje WordPressa, Drupala i Joomli.

Szczegóły
NazwaPHP2Shell (CVE-2026-109618, CVE-2026-109619)
Ocena zagrożeniaCVSS 9,2 (krytyczna). Atak bez logowania i bez udziału użytkownika
Podatne wersjePHP od 5.4 w górę
Wersje z poprawką8.2.35, 8.3.36, 8.4.27, 8.5.12
Zagrożone konfiguracjeApache z mod_php (największe ryzyko), PHP-FPM, php-cgi, LiteSpeed, FrankenPHP

Jak rozwijały się wydarzenia

Data (2026, UTC)Co się stało
19 sierpniaWiz Research, korzystając z narzędzi AI, znajduje pierwszą lukę
24 sierpniaPoufne zgłoszenie do zespołu bezpieczeństwa PHP
20 październikaSzczegóły wyciekają do sieci. PHP przyspiesza wydanie poprawek
21 października, 03:02Cloudflare włącza tymczasowe reguły ochronne dla wszystkich klientów
21 października, ok. 14:00PHP publikuje poprawione wersje
21 października, 14:19watchTowr raportuje pierwsze aktywne próby ataków
22 październikaW sieci krążą publiczne exploity

Warto zwrócić uwagę na jeszcze jeden szczegół. PHP Foundation przyznała, że pierwsze sygnały dotyczące jednego z błędów pojawiły się już podczas zewnętrznego audytu w 2024 roku. Prace nad poprawką zostały jednak wstrzymane na wiele miesięcy. Fundacja określiła to jako „błąd strukturalny” i od tamtego czasu zmieniła sposób podejmowania decyzji dotyczących bezpieczeństwa.

Czy Twoja wersja PHP jest zagrożona?

To jedno z najważniejszych pytań. Odpowiedź zależy od wersji PHP, na której działa Twoja strona.

Twoja wersja PHPStatusCo zrobić
8.1, 8.0, 7.x, 5.xBez wsparcia. Brak oficjalnej poprawki PHP2ShellJak najszybciej zaplanuj aktualizację. Niektórzy dostawcy (Ubuntu, AlmaLinux, CloudLinux) udostępniają poprawki dla starszych wersji, ale traktuj je jako rozwiązanie przejściowe
8.2Poprawka w 8.2.35, ale wsparcie bezpieczeństwa kończy się 31 grudnia 2026Wdróż poprawkę i zaplanuj przejście na PHP 8.4 lub 8.5 w ciągu kilku tygodni
8.3, 8.4, 8.5Wspierane wersje z poprawką (8.3.36, 8.4.27, 8.5.12)Sprawdź, czy poprawka jest faktycznie zainstalowana, a PHP zrestartowany

Największe ryzyko dotyczy stron korzystających z niewspieranych wersji PHP. Według skanów cytowanych przez Recorded Future około 79% usług PHP, których wersję udało się ustalić, działa na gałęziach bez wsparcia. Samo PHP 7.4 odpowiada za niemal 880 tys. takich usług. Jeśli Twoja strona powstała kilka lat temu i od dawna nikt nie aktualizował jej środowiska, warto to sprawdzić.

Aktualizacja PHP nie zawsze sprowadza się do jednego kliknięcia. Starsze motywy, wtyczki i kod tworzony na zamówienie mogą wymagać dostosowania do nowszej wersji. Dlatego przed migracją warto przeprowadzić testy zgodności. To zwykle znacznie mniejszy koszt niż usuwanie skutków włamania.

Nie wiesz, na jakiej wersji działa Twoja strona? Podeślij nam adres, a odpowiedź otrzymasz w ciągu 1–2 dni roboczych.

Co już się wydarzyło

Duże organizacje nie czekały na potwierdzenie ataku. Część z nich prewencyjnie wyłączyła swoje serwisy, aby ograniczyć ryzyko.

  • Holandia: czasowo wyłączono m.in. stronę krajowego centrum cyberbezpieczeństwa, DigiD i MijnOverheid, a także serwisy Izby Reprezentantów, Portu Rotterdam, największych partii politycznych i wielu szpitali.
  • Reszta Europy: prewencyjnie wyłączono część rządowych stron w Niemczech, Francji, Finlandii, Belgii i Czechach. Wikimedia czasowo wyłączyła część swoich systemów. CERT Polska, CERT-EU i brytyjskie NCSC wezwały do natychmiastowej aktualizacji.
  • Biznes: BambooHR wyłączył swoją platformę HR w USA, Kanadzie i Irlandii. W Japonii pilne prace serwisowe prowadzili dostawcy hostingu, m.in. Sakura Rental Server, a Bloomberg informował o wyłączonych usługach banków i linii lotniczych.

W szczytowym momencie 21 października UptimeRobot wysyłał około 37 tys. alertów o niedostępności stron na minutę — około 11 razy więcej niż dzień wcześniej. W Europie wzrost był dwudziestokrotny. Do 22 października nie pojawiło się publiczne potwierdzenie konkretnego udanego włamania. Nie oznacza to jednak, że ryzyko można zignorować.

19 min
minęło od publikacji poprawek do pierwszych prób ataków
11×
więcej alertów o niedziałających stronach 21 października niż dzień wcześniej
ok. 79%
usług PHP z widoczną wersją działa na gałęziach bez wsparcia
ok. 884 tys.
hostów działa na wersjach PHP, które nie dostaną oficjalnej poprawki

Ile PHP2Shell może kosztować firmę?

Łatwo potraktować to jako sprawę wyłącznie dla działu IT. Tymczasem przejęcie strony może oznaczać przerwę w sprzedaży, straty finansowe, obowiązki prawne i utratę zaufania klientów. Oto sześć obszarów, w których konsekwencje incydentu mogą być szczególnie dotkliwe.

Sześć sposobów, w jakie włamanie uderza w biznes

Koszt 01

Koszty obsługi incydentu

Według raportu IBM Cost of a Data Breach 2025 średni koszt naruszenia danych na świecie to 4,44 mln dolarów, a w USA 10,22 mln. Dla mniejszych firm skala kosztów jest zwykle inna, ale analiza incydentu, przywracanie systemów i przestój również mogą poważnie obciążyć budżet.

  • Koszt bezpośredni

Koszt 02

Przestój w najgorszym momencie

Awaryjne wyłączenie strony może oznaczać niedziałający formularz, niedostępny koszyk i utracone zapytania. Jeśli do awarii dojdzie podczas kampanii, budżet reklamowy nadal może kierować użytkowników na stronę, która nie działa.

  • Przychody

Koszt 03

Prawo i zgodność

Jeśli incydent doprowadzi do naruszenia ochrony danych osobowych, może powstać obowiązek zgłoszenia go do UODO — co do zasady w ciągu 72 godzin od stwierdzenia naruszenia. Za naruszenia RODO przewidziano kary sięgające 20 mln euro lub 4% światowego rocznego obrotu, zależnie od tego, która kwota jest wyższa. Sklepy internetowe podlegają też PCI DSS, a firmy objęte NIS2 mają własne obowiązki zgłaszania incydentów.

  • RODO
  • NIS2

Koszt 04

Klienci i partnerzy

Klienci B2B coraz częściej pytają o aktualizacje w ankietach bezpieczeństwa. Brak wiedzy o aktualnej wersji PHP i procedurach aktualizacji może osłabiać zaufanie partnerów biznesowych.

  • Zaufanie

Koszt 05

Problemy z odszkodowaniem

Ubezpieczyciele oferujący polisy cyber często sprawdzają, czy wdrażano poprawki do znanych krytycznych podatności. Długotrwały brak aktualizacji może utrudnić uzyskanie odszkodowania, zależnie od warunków polisy.

  • Ubezpieczenie

Koszt 06

Utrata widoczności w wyszukiwarkach

Atakujący mogą umieszczać w witrynie spam i ukryte linki. Google może oznaczyć stronę jako niebezpieczną, a jej domena może trafić na listy blokowania. Odbudowa widoczności w wynikach wyszukiwania może potrwać tygodnie lub miesiące.

  • Widoczność

Test na 10 sekund dla Twojego zespołu

Zadaj zespołowi jedno pytanie: kto odpowiada za aktualizacje PHP i kiedy ostatnio je wykonywano? Jeśli trudno wskazać osobę odpowiedzialną lub datę ostatniej aktualizacji, warto jak najszybciej uporządkować ten proces. Pomożemy Ci to zrobić.

AI a bezpieczeństwo stron: szybsze wykrywanie luk i szybsze ataki

PHP2Shell to jeden z pierwszych tak szeroko komentowanych przypadków, w których AI odegrała istotną rolę zarówno w wykrywaniu błędów, jak i w przygotowywaniu sposobów ich wykorzystania. Podatności były obecne w PHP od ponad dekady, a ich źródła wiązano z badaniami sięgającymi 2004 roku. Wykrył je zespół Wiz Research we współpracy z Calif i zespołem Codex Security z OpenAI, korzystając ze wsparcia modeli AI. Według Wiz jeden badacz wykonał w tydzień pracę, która wcześniej mogłaby zająć światowej klasy zespołowi wiele miesięcy.

Calif podkreśla jednak, że modele AI nie wykonały tej pracy samodzielnie. Niezbędna była wiedza specjalisty, który rozumiał historię i wewnętrzne mechanizmy PHP. AI nie zastąpiła eksperta — pozwoliła mu pracować znacznie szybciej.

Dla firm wynikają z tego trzy ważne wnioski:

  1. Czas na reakcję się kurczy. Między publikacją poprawek a pierwszymi atakami minęło 19 minut. Te same narzędzia, które pomogły znaleźć luki, pomagają atakującym dopasować exploity do różnych wersji i konfiguracji. Na pilne aktualizacje trzeba dziś reagować w ciągu godzin, nie tygodni.
  2. Takich alarmów będzie więcej. Jeżeli AI przyspiesza wykrywanie błędów nawet w tak dojrzałym i wielokrotnie sprawdzanym oprogramowaniu jak PHP, podobne sytuacje mogą dotyczyć również innych technologii.
  3. AI pomaga też w obronie. Zespół Gemini z Google pomagał przy poprawce, a Cloudflare miał reguły ochronne gotowe kilka godzin przed jej publikacją. Monitoring, sprawdzone kopie zapasowe i jasno określona odpowiedzialność za reakcję zwiększają szansę na ograniczenie skutków incydentu.

Jeszcze jedna ważna uwaga: nie korzystaj z niezweryfikowanych „poprawek” wygenerowanych przez chatbota ani z wtyczek obiecujących naprawę PHP z poziomu WordPressa. Patchstack wyraźnie przed tym ostrzega. Podatności w samym PHP nie da się usunąć wtyczką do CMS-a.

Co zrobić teraz? Lista kontrolna PHP2Shell

Nie musisz samodzielnie zarządzać serwerem, żeby zadbać o bezpieczeństwo strony. Wystarczy wiedzieć, co sprawdzić i do kogo zwrócić się po pomoc.

Dziś

  1. Sprawdź, na jakiej wersji PHP faktycznie działa Twoja strona. Ważna jest wersja obsługująca żądania WWW, a nie tylko wynik polecenia php -v w konsoli. Dostawcy systemów mogą udostępniać poprawki do starszych pakietów bez zmiany głównego numeru wersji. Dlatego warto sprawdzić historię zmian pakietu pod kątem CVE-2026-109618 i CVE-2026-109619.
  2. Zapytaj dostawcę hostingu lub administratora, czy poprawka PHP została już wdrożona i czy po aktualizacji zrestartowano Apache, PHP-FPM i procesy w tle. Bez restartu poprawka nie działa.
  3. Masz PHP 8.1 lub starsze? Sprawdź, czy dostawca systemu wydał poprawkę dla Twojej wersji. Jeśli nie, zaplanuj możliwie szybką migrację, najlepiej do PHP 8.4 lub 8.5.
  4. Nie instaluj „wtyczek naprawczych” ani nie wdrażaj niesprawdzonego kodu znalezionego na forum czy wygenerowanego przez chatbota.
  5. Nie możesz od razu wdrożyć poprawki? Administrator może rozważyć tymczasowe ograniczenia, np. session.upload_progress.enabled=0 oraz obniżoną wartość post_max_size. To środki ograniczające ryzyko, a nie zamiennik aktualizacji. Reguły WAF w Cloudflare pomagają tylko wtedy, gdy serwer nie przyjmuje ruchu z pominięciem Cloudflare. Przy wrażliwych danych rozważ tryb serwisowy do czasu aktualizacji.

W tym tygodniu

  1. Zrób inwentaryzację środowisk PHP. Sprawdź serwisy testowe, stare landing page’e, zapomniane subdomeny, kontenery i systemy zewnętrznych dostawców.
  2. Przejrzyj logi od 20 października. Zwróć uwagę na nietypowe żądania przesyłania plików, błędy wyczerpania pamięci, serie błędów 500, wyjątkowo duże pliki cookie PHPSESSID i nieoczekiwane restarty PHP. Brak podejrzanych wpisów w logach nie gwarantuje, że serwer jest bezpieczny.
  3. Masz wątpliwości? Załóż, że serwer mógł zostać naruszony. Zmień hasła, klucze API i tokeny, które na nim były, bo mogły wyciec z pamięci. Sprawdź pliki pod kątem obcego kodu. Jeśli doszło do naruszenia ochrony danych osobowych, sprawdź również, czy powstał obowiązek zgłoszenia do UODO i czy obowiązuje termin 72 godzin.

Na stałe

Ustal, kto odpowiada za aktualizacje. Powinna to być konkretna osoba lub firma, z jasno określonym czasem reakcji. Dodaj monitoring dostępności, regularnie testowane kopie zapasowe i wspieraną wersję PHP. Dzięki temu kolejny incydent nie musi oznaczać działania w trybie kryzysowym.

Wolisz powierzyć to specjalistom?
Możemy sprawdzić Twoją stronę i serwer pod kątem PHP2Shell, wdrożyć dostępne poprawki i zaplanować aktualizację PHP tam, gdzie jest potrzebna. Pomożemy też uporządkować stałe utrzymanie strony, aby łatwiej reagować na kolejne zagrożenia.

PHP2Shell: najczęstsze pytania

Tak, jeśli WordPress działa na wersji PHP bez odpowiedniej poprawki. Sama aktualizacja WordPressa, motywu czy wtyczek nie rozwiąże problemu, ponieważ podatność dotyczy środowiska PHP.

Za aktualizacje PHP zwykle odpowiada dostawca hostingu, ale warto potwierdzić, że poprawka została wdrożona. Sprawdź też ustawienia w panelu hostingowym. Jeśli Twoja strona korzysta ze starej wersji, na przykład PHP 7.4, oficjalna poprawka może nie być dostępna.

Nie. Reguły WAF mogą blokować znane warianty ataku i ograniczać ryzyko do czasu aktualizacji, ale atakujący próbują je omijać. Nie zastępują poprawki PHP.

Same logi mogą nie wystarczyć, ponieważ nie każdy atak pozostawia wyraźne ślady. Jeśli serwer działał bez poprawki po 20 października, warto przeanalizować logi i pliki, a także zmienić przechowywane na nim hasła i klucze.

Wdrożenie poprawki do wspieranej wersji PHP może zająć kilka minut. Migracja z PHP 7.4 lub 8.1 do 8.4 zwykle wymaga wcześniejszych testów zgodności motywów, wtyczek i własnego kodu. W zależności od złożoności strony może to potrwać od jednego dnia do kilku tygodni.

Prawdopodobnie tak. AI przyspiesza wyszukiwanie podatności zarówno po stronie badaczy bezpieczeństwa, jak i atakujących. Warto przygotować procedury aktualizacji i reagowania na incydenty, zamiast podejmować decyzje dopiero w sytuacji kryzysowej.

Podsumowanie

PHP2Shell nie dotyczył jednej strony ani jednego CMS-a. Pokazał, jak ważna jest szybka reakcja, gdy krytyczna podatność pojawia się w oprogramowaniu wykorzystywanym przez wiele serwisów. Część organizacji prewencyjnie wyłączyła swoje strony, aby bezpiecznie wdrożyć poprawki. Inne nadal nie wiedzą, z jakiej wersji PHP korzystają.

Wniosek jest prosty: bezpieczeństwo strony wymaga regularnej opieki, nie jednorazowego wdrożenia. Ktoś powinien wiedzieć, jakie oprogramowanie działa na serwerze, śledzić aktualizacje i reagować na nowe zagrożenia.

Czy Twoja strona jest dziś bezpieczna?
Prześlij nam adres strony. Sprawdzimy wersję PHP, konfigurację serwera, stan aktualizacji i kopii zapasowych, a następnie jasno wskażemy, co działa prawidłowo, a co wymaga poprawy.
0%