PHP2Shell — krytyczne luki w PHP pozwalają przejąć serwery WWW (2026)
Dwie krytyczne luki w PHP nazwane PHP2Shell (CVE-2026-109618, CVE-2026-109619) pozwalają atakującym uruchamiać kod na serwerach WWW bez logowania. Łatki ukazały się 21 października 2026 roku — ataki zaczęły się kilka dni wcześniej.
Czym jest to zagrożenie?
21 października 2026 roku projekt PHP wydał awaryjne aktualizacje bezpieczeństwa dla dwóch krytycznych luk w samym języku PHP, nazwanych PHP2Shell:
Obie oceniono na 9,2 na 10 (krytyczne). Razem umożliwiają zdalne wykonanie kodu bez uwierzytelniania: atakujący, który może wysłać żądanie do podatnego serwera, potencjalnie uruchomi na nim własne polecenia — bez hasła, bez konta i niezależnie od kodu samej strony.
PHP napędza dużą część internetu, w tym WordPressa, Drupala, Joomlę, Magento, aplikacje w Laravelu oraz niezliczone sklepy internetowe i portale klientów. Palo Alto Networks naliczyło ponad 22 miliony dostępnych z internetu instalacji PHP, które są potencjalnie narażone.
Oś czasu
| Data | Wydarzenie |
|---|---|
| 17 października 2026 | Honeypoty Amazona rejestrują pierwszą próbę wykorzystania luki — cztery dni przed jej ujawnieniem |
| 21 października 2026 | PHP publikuje komunikat i wydaje wersje 8.5.12, 8.4.27, 8.3.36 i 8.2.35 |
| 21 października 2026 | W ciągu godziny zaczyna się masowe skanowanie internetu; co najmniej jeden europejski rząd zapobiegawczo wyłącza swoją stronę |
| 22 października 2026 | Cloudflare informuje o milionach prób ataku |
| 23 października 2026 | PHP ostrzega przed powiązanym, mniej groźnym problemem (CVE-2026-115560) przy nietypowych konfiguracjach sesji; poprawka pojawi się w kolejnym regularnym wydaniu |
Kogo to dotyczy?
Zagrożona jest każda instalacja PHP obsługująca żądania WWW — niezależnie od tego, czy działa jako Apache mod_php (najbardziej ryzykowna konfiguracja), PHP-FPM, php-cgi, LiteSpeed czy FrankenPHP, łącznie z kontenerami Docker z własnym PHP.
| Wersja PHP | Status |
|---|---|
| 8.5 przed 8.5.12 | Podatna — zaktualizuj do 8.5.12 |
| 8.4 przed 8.4.27 | Podatna — zaktualizuj do 8.4.27 |
| 8.3 przed 8.3.36 | Podatna — zaktualizuj do 8.3.36 |
| 8.2 przed 8.2.35 | Podatna — zaktualizuj do 8.2.35 |
| 7.4, 8.0, 8.1 (koniec wsparcia) | Podatne — brak oficjalnego wydania; tylko pakiety dystrybucji lub backporty kodu źródłowego |
| 7.3 i starsze | Podatne — brak poprawki; konieczna aktualizacja |
Dystrybucje Linuksa otrzymały poprawki z wyprzedzeniem, więc zaktualizowane pakiety są dostępne przez zwykłe aktualizacje systemu. Niektórzy dostawcy wprowadzają poprawki bez zmiany numeru wersji — sprawdź komunikat bezpieczeństwa swojej dystrybucji.
Jak atakujący to wykorzystują
Badacze zauważają, że zbudowanie niezawodnego exploita jest trudniejsze, niż początkowo sądzono, i wiele prób kończy się niepowodzeniem — ale przy milionach prób dziennie niezałatane serwery prędzej czy później zostaną trafione.
Dlaczego to ważne — nawet jeśli nie masz serwera
Jeśli masz prywatnego bloga, stronę małej firmy lub sklep internetowy na hostingu współdzielonym, niemal na pewno działa on na PHP. Przejęte strony są wykorzystywane do:
Jako odwiedzający nie załatasz cudzego serwera — ale możesz zauważyć oznaki, że znana Ci strona została zmanipulowana.
Lista sygnałów ostrzegawczych
Dla właścicieli stron:
sh, bash) lub nieznane programyDla odwiedzających:
Jak się chronić
- Natychmiast zaktualizuj PHP do 8.5.12, 8.4.27, 8.3.36 lub 8.2.35 (albo do załatanego pakietu swojej dystrybucji), a następnie zrestartuj wszystkie procesy PHP i serwer WWW
- Na hostingu współdzielonym lub zarządzanym WordPressie poproś dostawcę o pisemne potwierdzenie instalacji poprawek PHP2Shell
- Jeśli używasz PHP 8.1 lub starszego, już teraz zaplanuj przejście na wspieraną wersję — 7.3 i starsze nigdy nie dostaną poprawki
- Do czasu aktualizacji ogranicz publiczny dostęp do strony i tymczasowo ustaw session.upload_progress.enabled=0 — to zmniejsza ryzyko, ale go nie eliminuje
- Umieść stronę za zaporą aplikacji WWW (WAF), która w całości sprawdza duże żądania; główni dostawcy opublikowali już reguły przeciw PHP2Shell
- Zinwentaryzuj wszystkie serwery, obrazy kontenerów i narzędzia wewnętrzne działające na PHP, zaczynając od systemów dostępnych z internetu
- Jako odwiedzający aktualizuj przeglądarkę i nigdy nie instaluj „aktualizacji” ani „narzędzi bezpieczeństwa” proponowanych przez wyskakujące okno na stronie
Co zrobić, jeśli padłeś ofiarą
- 1.Jeśli podejrzewasz włamanie, wyłącz stronę lub zablokuj publiczny dostęp, zanim zaczniesz analizę
- 2.Najpierw załataj PHP, a potem szukaj web shelli, nieznanych plików PHP, nowych kont administratorów i nieznanych zadań cyklicznych (cron)
- 3.Sprawdź, czy procesy serwera WWW lub PHP uruchamiały powłoki lub nieznane programy, i przejrzyj połączenia wychodzące serwera
- 4.Jeśli nie możesz potwierdzić, że serwer jest czysty, odtwórz go z czystej kopii zapasowej sprzed 17 października 2026 roku
- 5.Zmień wszystkie hasła i klucze przechowywane na serwerze — dane dostępowe do bazy, klucze API, konta administratorów CMS i loginy do hostingu
- 6.Jeśli dane klientów mogły zostać ujawnione, wypełnij obowiązki zgłoszenia naruszenia (np. 72-godzinny termin z RODO — w Polsce zgłoszenie do UODO)
- 7.Zgłoś incydent krajowemu zespołowi CERT (Polska: CERT Polska, Niemcy: BSI, Austria: CERT.at, USA: CISA)