PHP2Shell – dwie poważne luki bezpieczeństwa (CVE-2026-109618 i CVE-2026-109619) w PHP w wersjach od 5.4 do 8.5, które pozwalają na zdalne wykonanie kodu (RCE). Ich istnienie ogłoszono publicznie 20 października 2026 roku. Następnego dnia twórcy PHP wydali awaryjne poprawki dla wersji 8.2, 8.3, 8.4 i 8.5 oraz opublikowali szczegóły luk.
Luki występują w PHP od wersji 5.4, wydanej w 2012 roku. Według firmy Wiz błędy, z których wynikają, tkwiły w kodzie od dziesięcioleci, ale wykazanie, że da się je wykorzystać, wymagało wyjątkowo złożonego łańcucha kroków. W 2024 roku jeden z głównych programistów PHP usuwał błąd wykryty podczas zewnętrznego audytu i natrafił przy tym na pierwsze ślady błędu braku pamięci (OOM), z którego wynika luka CVE-2026-109618. Błędu nie naprawiono: zespół nie zdołał uzgodnić, jak to najlepiej poprawić, a nikt nie znalazł konkretnego sposobu ataku, więc sprawa nie miała wysokiego priorytetu.
Luki wykryły niezależnie od siebie trzy zespoły: Calif, OpenAI i Wiz. Kalifornijska firma Calif prowadziła audyt PHP w ramach programu „Patch the Planet”, który zainicjowało OpenAI. Firma znalazła luki 1 sierpnia 2026 roku z pomocą dużego modelu językowego. 11 sierpnia Calif zgłosiła twórcom PHP pierwszy błąd. Pod opisem badań na stronie Calif podpisuje się Ryan Austin. Według OpenAI Calif korzystała przy tym z modelu GPT-5.6 Sol. Calif podała natomiast, że przy odkryciu używano wyłącznie modeli dostępnych publicznie. Tego samego dnia OpenAI niezależnie zgłosiło błąd o tej samej przyczynie. 24 sierpnia kolejne sposoby ataku zgłosiła firma Wiz, która należy do koncernu Alphabet i wchodzi w skład Google Cloud. Jej badacze korzystali z dużych modeli językowych Gemini 4 Argon i GPT-5.6 Sol oraz z własnego narzędzia Wiz Atlas.
Twórcy PHP ocenili obie luki na 9,2 w dziesięciopunktowej skali CVSS v4.0 (poziom krytyczny), a firma watchTowr – na 10,0.
Opiekunowie PHP wydali poprawione wersje 8.2.35, 8.3.36, 8.4.27 i 8.5.12. Projekt PHP nie aktualizuje już wersji 8.1 i starszych, ale ze względu na wagę luk zespół bezpieczeństwa przygotował minimalne poprawki kodu źródłowego dla wersji 7.4, 8.0 i 8.1. Opublikowano też tymczasowe środki zaradcze. Opiekunowie zastrzegli jednak, że ograniczają one tylko niektóre drogi ataku, a pełną ochronę daje wyłącznie aktualizacja. Poprawki kodu źródłowego trafiły do repozytorium php-src w serwisie GitHub 21 października 2026 roku o 13:34 UTC, razem z biuletynami bezpieczeństwa opisującymi obie luki. Stało się to 26 minut przed zapowiedzianym terminem wydania.
Luki miały zostać ujawnione 22 października, ale 20 października na forum Hacker News pojawił się wpis zapowiadający dwie luki RCE w PHP. Kilka godzin później firma watchTowr potwierdziła, że luki są prawdziwe. Identyfikatory CVE krążyły wtedy na forach i w mediach społecznościowych, razem z błędnym terminem wydania i błędną oceną 10,0 w skali CVSS. W odpowiedzi opiekunowie PHP opublikowali zapowiedź aktualizacji wcześniej, niż planowali, i przyspieszyli wydanie poprawek o jeden dzień, na 21 października, godz. 14:00 UTC. W zapowiedzi zachęcili użytkowników, by przygotowali się do aktualizacji i zainstalowali ją od razu po wydaniu. Firma Sansec przewidywała, że „masowe ataki zaczną się w ciągu 15 minut od wydania”.
20 października około 20:00 UTC firma Calif omyłkowo opublikowała nagranie, które pokazywało działanie jej exploita typu proof of concept na kilku celach. Calif usunęła nagranie, ale jego kopie krążyły w mediach społecznościowych. Według fundacji The PHP Foundation nagranie przyspieszyło powstawanie publicznych exploitów. 21 października, jeszcze przed końcem embarga informacyjnego, krążyły już exploity typu proof of concept i opisy częściowych środków zaradczych. Tego dnia o 7:41 UTC, ponad sześć godzin przed uzgodnionym terminem, firma Chainguard opublikowała obrazy oprogramowania z poprawką. Podobnie jak inni dystrybutorzy otrzymała poprawkę wcześniej. Publikacja obrazów pozwoliła atakującym przeanalizować zmiany, zanim pozostali użytkownicy PHP mogli je zainstalować.
Zespół Amazon Threat Intelligence firmy Amazon wykrył w danych telemetrycznych systemu MadPot próbę wykorzystania PHP2Shell z 17 października 2026 roku, cztery dni przed publicznym ujawnieniem luk. Cloudflare jeszcze przed wydaniem poprawek odnotował pierwsze ataki i wdrożył reguły zapory aplikacji internetowych (WAF). Zastrzegł przy tym, że są one tylko rozwiązaniem doraźnym. Firma watchTowr podała, że do 21 października jej sieć honeypotów zarejestrowała rzeczywiste ataki. Tego samego dnia amerykańska Cybersecurity and Infrastructure Security Agency (CISA) poinformowała, że nie zaobserwowała jeszcze wykorzystania luk.

Według serwisu W3Techs z PHP korzysta 69% wszystkich stron internetowych, w tym strony oparte na systemach zarządzania treścią, takich jak Drupal, Joomla! i WordPress, dlatego luki mogły mieć bardzo szerokie skutki. PHP jest też częścią urządzeń różnych producentów, paneli administracyjnych hostingu, takich jak cPanel i Plesk, oraz niektórych aplikacji dla systemu Windows.
Agencje bezpieczeństwa wzywały organizacje, które nie mogą od razu zainstalować poprawek, by rozważyły wyłączenie stron. Amerykańska National Security Agency (NSA) zaleciła w takim wypadku wyłączenie systemu, dopóki zagrożenie nie zostanie w pełni usunięte. Brytyjskie National Cyber Security Centre (NCSC) wydało podobne zalecenie i wezwało do sprawdzenia, czy atakujący nie zainstalowali w systemach backdoorów. Unijny zespół CERT-EU zalecił, by organizacje rozważyły odizolowanie aplikacji dostępnych z internetu od sieci publicznych. Wiele organizacji w Europie zapobiegawczo wyłączyło strony do czasu wydania poprawek, między innymi holenderski portal rządowy Overheid.nl, publiczne serwisy internetowe rządu Finlandii i strony francuskich prefektur, które wyłączyło Ministerstwo Spraw Wewnętrznych. W Japonii urząd rządowy ds. cyberbezpieczeństwa (National Cybersecurity Office) wezwał do jak najszybszego działania.
Wikimedia Foundation wyłączyła narzędzia pomocnicze. Według NBC News fora 4chan i Something Awful przestały działać do czasu wydania poprawki, a według serwisu Mashable 4chan przeszedł w tryb tylko do odczytu. W Japonii prace konserwacyjne ogłosiły gry Umamusume: Pretty Derby, Granblue Fantasy i Princess Connect! Re:Dive, a także serwisy handlowe, między innymi BASE. Internet Archive na krótko wyłączyło serwisy, aby zająć się problemem.
Badacze z Wiz porównali wagę problemu do luki Heartbleed z 2014 roku, która dotyczyła technologii szyfrowania używanej według szacunków przez dwie trzecie stron WWW. Dziennik „The Guardian” zwrócił uwagę, że fundacja The PHP Foundation utrzymuje się z wpłat darczyńców, a do rozwijania języka PHP ma tylko 13 inżynierów zatrudnionych na pełny etat lub w niepełnym wymiarze, podczas gdy w rozwój sztucznej inteligencji zainwestowano miliardy.