+− THE DAILY DIFFdev & AI news
SHIP IT

PHP2Shell: dwie krytyczne luki w PHP, wyciekłe embargo i co faktycznie wiadomo o eksploatacji

PHP wysłało awaryjne poprawki dla dwóch krytycznych luk w zdalnym wykonaniu kodu, CVE-2026-109618 i CVE-2026-109619, nazwanych PHP2Shell.

Want to see our stories first on Google? Add us to your preferred sources — it helps us grow.

PHP wysłało awaryjne poprawki dla dwóch krytycznych luk w zdalnym wykonaniu kodu, CVE-2026-109618 i CVE-2026-109619, nazwanych PHP2Shell. Wydanie miało miejsce 21 października 2026 r. Odcinek wyjaśnia te dwa błędy pamięci prostymi słowami, dlaczego wskazówka z audytu z 2024 r. czekała na poprawkę, jak wyciekło embargo i które źródła mówią co o wykorzystaniu. Obejmuje również krytyczne wydanie poprawki GitLab tego samego dnia i nakaz kary dla Meta w wysokości 25 miliardów dolarów w Nowym Meksyku.

Przeczytaj wydanie pisemne (angielski) ↗

Co obejmuje ten film

  • Obie luki zostały ocenione na 9,2 w skali CVSS v4.0 przez zespół PHP. Naprawione wersje to PHP 8.2.35, 8.3.36, 8.4.27 i 8.5.12; PHP 7.4, 8.0 i 8.1 otrzymały tylko łatki źródłowe. PHP twierdzi, że aktualizacja jest jedynym kompletnym środkiem zaradczym.
  • Pierwsza luka wynika z tego, że PHP pozostawia żądanie w połowie zbudowane, gdy w niewłaściwym momencie zabraknie pamięci. Druga wynika z pozostawionego wskaźnika do pamięci jednego żądania, którego może użyć późniejsze żądanie w tym samym procesie roboczym. W Apache z mod_php pierwsza ścieżka uruchamia się przed kodem aplikacji.
  • Deweloper z zespołu PHP core znalazł pierwsze oznaki problemu z pamięcią podczas audytu w 2024 roku. Fundacja PHP twierdzi, że konkurencyjne poprawki miały kompromisy, a zespół ds. bezpieczeństwa, działający na zasadzie konsensusu, miał trudności z wyborem, co nazywa awarią strukturalną.
  • Fundacja twierdzi, że identyfikatory CVE wyciekły 20 października, Calif omyłkowo opublikowało film z dowodem koncepcji, a Chainguard opublikowało zbudowane obrazy z poprawką ponad sześć godzin przed wydaniem. Dyrektor generalny Chainguard mówi, że ludzie już byli dotknięci, i że on sam niezależnie znalazł błędy.
  • Źródła różnią się co do eksploatacji. Amazon odnotował próbę 17 października, a później stwierdził, że PHP2Shell był szeroko wykorzystywany. watchTowr zgłosił eksploatację w środowisku naturalnym. CISA nie zaobserwowała eksploatacji w momencie publikacji, a zespół PHP nie znalazł działającego exploita w momencie wydania. Wiele publicznych skryptów proof-of-concept podobno nie działa.
  • Sprawdź każde miejsce, w którym działa PHP, w tym kopie w innym oprogramowaniu, zaktualizuj, uruchom ponownie procesy robocze i przejrzyj dzienniki do 17 października.

Pytania i odpowiedzi

Czym są dwie luki PHP2Shell?

PHP2Shell to nazwa dwóch krytycznych luk w PHP, CVE-2026-109618 i CVE-2026-109619, obie ocenione na 9.2 przez zespół PHP. Pierwsza polega na pozostawieniu częściowo zbudowanego żądania, gdy PHP w niewłaściwym momencie zabraknie pamięci, a proces czyszczenia mu wtedy ufa. Druga pozostawia wskaźnik do pamięci jednego żądania, który może być wykorzystany przez późniejsze żądanie w tym samym procesie roboczym. Obie mogą prowadzić do wykonania kodu bez logowania.

Obejrzyj tę część 0:41 · PHP security advisory · PHP security advisory · The PHP Foundation

Które wersje PHP mają poprawkę dla PHP2Shell, a co z nieobsługiwanymi wersjami?

Projekt PHP wydał poprawki w wersjach 8.2.35, 8.3.36, 8.4.27 i 8.5.12 w dniu 21 października. Dla wersji 7.4, 8.0 i 8.1 opublikował tylko łatki źródłowe, a BleepingComputer informuje, że dystrybucje i dostawcy długoterminowego wsparcia mogą dostarczyć poprawki przeniesione z nowszych wersji. PHP twierdzi, że nie ma pełnego obejścia problemu, więc aktualizacja lub zwrócenie się do dostawcy o załataną paczkę jest jedynym bezpiecznym wyborem.

Obejrzyj tę część 4:11 · The PHP Foundation · BleepingComputer

Dlaczego znany błąd pamięci PHP czekał na poprawkę do października 2026 r.?

Fundacja PHP twierdzi, że główny deweloper znalazł pierwsze oznaki problemu z pamięcią podczas audytu bezpieczeństwa w 2024 roku, ale nie było znanej ścieżki exploita, a każda kandydatka na poprawkę miała kompromisy, takie jak naruszenia kompatybilności. Zespół ds. bezpieczeństwa podejmuje decyzje na zasadzie konsensusu i miał trudności z wyborem, co Fundacja nazywa awarią strukturalną spowodowaną procesem decyzyjnym i brakiem zasobów.

Obejrzyj tę część 1:37 · The PHP Foundation

Czy PHP2Shell jest eksploatowany i jak łatwo go wykorzystać?

Źródła są sprzeczne. Amazon odnotował próbę eksploatacji 17 października i później stwierdził, że PHP2Shell był szeroko wykorzystywany, a watchTowr zgłosił eksploatację w środowisku naturalnym. CISA nie zaobserwowała eksploatacji w momencie publikacji, a zespół PHP nie widział funkcjonalnego exploita w momencie wydania. watchTowr twierdzi, że większość publicznych skryptów eksploitacyjnych powoduje awarie lub nic nie robi, a VulnCheck stwierdził, że wykonanie kodu działa tylko w niektórych konfiguracjach.

Obejrzyj tę część 2:50 · AWS Security Blog · CISA · SecurityWeek

Jaki był werdykt The Daily Diff w sprawie PHP2Shell?

Werdykt The Daily Diff brzmiał SHIP IT: wyślij aktualizację PHP dziś wieczorem, ponieważ nowa wersja jest jedyną kompletną poprawką. CISA zaleca zinwentaryzowanie każdego systemu z uruchomionym PHP, w tym kopii w innym oprogramowaniu, zastosowanie poprawki i wyłączenie systemów PHP, jeśli nie można ich zaktualizować. Amazon zaleca przejrzenie dzienników do 17 października, kiedy to zaobserwowano pierwszą próbę.

Obejrzyj tę część 5:38 · CISA · AWS Security Blog

Przetłumaczona transkrypcja

Przetłumaczono z oryginalnej narracji angielskiej. Dostępne audio i napisy są kontrolowane przez YouTube.

Kto próbował PHP2Shell cztery dni wcześniej?

0:00 Embargo bezpieczeństwa ma na celu utrzymanie błędu w tajemnicy, dopóki poprawka nie zostanie wysłana. Amazon odnotował próbę wykorzystania krytycznej luki w PHP cztery dni wcześniej. W tym filmie, kto to znalazł? Jak wyciekło embargo? I jak źle jest naprawdę? A firma, którą obwiniano za wyciek, ma obronę, której się nie spodziewałem. Zaraz do tego dojdę. Jest czwartek, dwudziesty drugi października, a to jest The Daily Diff.

0:21 PHP to język skryptowy, który buduje strony internetowe na serwerze tuż przed tym, jak do ciebie dotrą. Ma ponad trzydzieści lat i, według jednego szacunku, zasila około siedemdziesiąt procent stron internetowych, w tym WordPress i oprogramowanie stojące za Wikipedią. Deweloperzy uwielbiają go wyśmiewać, zazwyczaj ze strony, którą im PHP serwuje. Jego utrzymanie to organizacja non-profit z około trzynastoma inżynierami.

Czym są dwie luki PHP2Shell?

0:41 W środę PHP wydało awaryjne poprawki dla dwóch krytycznych luk, które pozwalały obcemu uruchamiać kod na serwerze bez logowania. Razem nazywają się PHP2Shell i sięgają do PHP pięć kropka cztery. Oto pierwszy błąd w prostych słowach. PHP przydziela każdemu żądaniu budżet pamięci. Jeśli żądanie osiągnie ten limit w dokładnie niewłaściwym momencie, PHP szybko się wycofuje i pozostawia żądanie w połowie zbudowane. Wtedy krok czyszczenia ufa tej niedokończonej rzeczy.

1:07 Drugi błąd to resztka. Błąd krytyczny może pozostawić notatkę wskazującą na pamięć, która należała do ostatniego żądania. Ten sam proces roboczy obsługuje następne żądanie i postępuje zgodnie z notatką. Do tego czasu ktoś inny zajmuje ten adres. W Apache z mod PHP, uszkodzenie następuje zanim uruchomi się Twój własny kod, więc Twoja strona logowania nigdy nie dostaje głosu. Wiz twierdzi, że nawet skrypt „hello world” jest narażony. Poprawka usuwa awaryjne wyjście PHP w przypadku braku pamięci.

1:32 Zamiast wycofywać się w trakcie żądania, PHP teraz grzecznie zatrzymuje się w następnym bezpiecznym punkcie. Dziwna jest tylko, jak stara jest pierwsza wskazówka.

Dlaczego znany błąd czekał dwa lata?

1:39 W 2024 roku zewnętrzny audyt bezpieczeństwa doprowadził programistę PHP core do pierwszych oznak problemu z pamięcią. Nie było wiadomo o żadnym exploitcie, a każda poprawka coś psuła. Zespół, który podejmuje decyzje na zasadzie konsensusu, nie mógł wybrać, więc błąd czekał. Potem, w sierpniu, odkrywcy pojawili się w ciągu kilku dni.

Kto i jak znalazł PHP2Shell?

1:56 Badacz Calif, Ryan Austin, odkrył to pierwszego sierpnia, pracując w ramach programu OpenAI Patch the Planet. OpenAI niezależnie zgłosiło tę samą przyczynę źródłową. Wiz znalazł warianty kilka tygodni później, używając modeli Gemini i GPT. Austin twierdzi, że używał modeli dostępnych dla każdego, plus teorii o tym, gdzie ukrywają się stare błędy PHP. OpenAI twierdzi, że kluczem była sztuczna inteligencja na najwyższym poziomie. Błąd ukrywał się przez ponad dekadę. Wydanie było planowane na czwartek.

Jak wyciekło embargo PHP2Shell?

2:21 We wtorek, dwa numery CVE zaczęły krążyć online, z błędnym czasem wydania i błędną oceną dziesięć. PHP przyspieszyło wydanie o jeden dzień. Tego wieczoru, Calif przypadkowo opublikowało wideo ze swoim dowodem koncepcji działającym, a kopie przetrwały usunięcie. W środę rano, ponad sześć godzin przed wydaniem, Chainguard opublikowało zbudowane obrazy zawierające poprawkę. PHP twierdzi, że każdy atakujący mógłby przestudiować tę poprawkę, podczas gdy wszyscy inni czekali.

2:46 Poprawka to także różnica (diff), a atakujący czytają różnice (diffy).

Czy PHP2Shell jest wykorzystywany i przez kogo?

2:50 Więc kto faktycznie jest poszkodowany? Pułapka na hakerów Amazona zarejestrowała próbę 17 października, a później stwierdzono, że PHP2Shell jest szeroko wykorzystywany. watchTowr zgłasza eksploatację w środowisku naturalnym. Cisa powiedziała, że nie zaobserwowała żadnych w momencie publikacji, a zespół PHP nie widział żadnego działającego exploita w momencie wydania. Dyrektor generalny Cloudflare powiedział, że widział tysiące prób w ciągu dziesięciu godzin przed ogłoszeniem i miliony do czwartkowego ranka.

3:13 Amazon jest ostrożny w jednej kwestii. Nie wie, czy jego najwcześniejsze próby zadziałałyby na prawdziwym systemie. Próba to tylko pukanie do drzwi. Więc jak źle jest, naprawdę? watchTowr twierdzi, że publiczne exploity krążące w sieci głównie powodują awarie lub nie robią nic. VulnCheck mówi, że wykonanie kodu działa w niektórych konfiguracjach, a żadne z publicznych nie pokonuje randomizacji pamięci na standardowych serwerach x86. Badacz Elias Taylor twierdzi, że to nigdzie nie jest tak łatwe jak Log4Shell.

3:40 Wszyscy nadal mówią "załataj". Rządy nie czekały na werdykt.

Co rządy wyłączyły?

3:44 NSA nakazała organizacjom, które nie mogły załatać, wyłączyć systemy PHP, a brytyjskie Narodowe Centrum Bezpieczeństwa Cybernetycznego udzieliło podobnych porad. Holenderskie strony, w tym krajowa usługa cyfrowej tożsamości, zgasły, podobnie jak strona policji w Paryżu. Wikimedia wyłączyła kilka systemów w ramach środków ostrożności. Palo Alto Networks naliczyło ponad dwadzieścia dwa miliony narażonych instancji. A australijski profesor wskazał na najważniejszą rzecz. Strony, o które należy się martwić, to te, które dziś nie są wyłączone.

Które wersje PHP otrzymają poprawkę?

4:11 Istnieją poprawki dla PHP w wersjach od 8.2 do 8.5. Dla wersji 7.4, 8.0 i 8.1, PHP opublikowało tylko łatki źródłowe. Starsze wersje nie otrzymują nic od projektu PHP, więc zapytaj swoją dystrybucję. Obejścia zmniejszają prawdopodobieństwo, ale PHP twierdzi, że aktualizacja jest jedynym kompletnym rozwiązaniem. To ta sama lekcja, co wczorajszy odcinek eMudhra,

Co zrobić z PHP2Shell dziś wieczorem?

4:32 ponieważ istnienie poprawki to nie to samo, co jej obecność w uruchomionym procesie. Znajdź każde PHP w swoim stosie, nawet te kopie ukryte w innym oprogramowaniu. Zaktualizuj, ponownie uruchom procesy robocze i sprawdź dzienniki do siedemnastego października. Tego samego dnia GitLab wypuścił krytyczną poprawkę,

Co jeszcze wydało dziś krytyczną łatkę RCE?

4:47 dziewiętnaście kropka pięć kropka jeden. Przepełnienie liczby całkowitej w jego kompilatorze wyrażeń regularnych pozwala nieautoryzowanemu użytkownikowi uruchomić kod na serwerze, i to jest oceniane na dziesięć na dziesięć. GitLab.com jest już załatany. Instalacje zarządzane samodzielnie wymagają aktualizacji.

Dlaczego Meta została zobowiązana do zapłaty 25 miliardów dolarów?

5:01 Tymczasem w Nowym Meksyku sędzia nakazał firmie Meta zapłacić dwadzieścia pięć miliardów dolarów kar za Cambridge Analytica. Ława przysięgłych naliczyła ponad czterdzieści trzy miliony naruszeń po pięć tysięcy dolarów każde, co dało około dwieście dwadzieścia miliardów, zanim sędzia to obciął. Meta twierdzi, że wygra w apelacji. Teraz obrona, którą obiecałem.

Jaka jest obrona Chainguard w sprawie wcześniejszej poprawki?

5:19 Dyrektor generalny Chainguard powiedział The Register, że sam znalazł te same błędy w piątek wieczorem, po tym jak dowiedział się, że coś nadchodzi w PHP, z podstawowym poleceniem, aby znaleźć złe luki. Mówi, że wysłał poprawkę wcześniej, ponieważ ludzie już byli atakowani. Jeśli wolisz to przeczytać, niż usłyszeć, jak to mówię, różnica ląduje w Twojej skrzynce odbiorczej każdego ranka, za darmo na daily diff dot dev, link poniżej. Więc dzisiejszy werdykt to SHIP IT.

Co otrzymuje pieczęć SHIP IT?

5:39 Wysyłaj aktualizację PHP dziś wieczorem, ponieważ nowy numer wersji jest jedyną kompletną poprawką. I to jest cała różnica na dziś. Jestem Niko z Axrisi. Łącz odpowiedzialnie.

Źródła

  1. Today's PHP Security Release, and How We're Strengthening PHP SecurityThe PHP Foundation
  2. RCE via OOM corruption (GHSA-w8hw-w9fx-j79w)PHP security advisory
  3. RCE via stale global state (GHSA-6wmf-4rv5-p3rp)PHP security advisory
  4. Upcoming Critical PHP Security Releasephp.net
  5. php2shellCalif
  6. PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the InternetWiz Research
  7. Amazon Threat Intelligence identifies PHP2Shell exploitation prior to public disclosure in MadPotAWS Security Blog
  8. Critical Vulnerabilities in PHP Require Immediate PatchingCISA
  9. Flaw in PHP computer language leads to shutdown of websites around worldThe Guardian
  10. What is PHP, and how bad is the computer language flaw causing website shutdowns globally?The Guardian
  11. PHP2Shell Exploitation Started Days Before PatchesSecurityWeek
  12. PHP2Shell: Responding to CVE-2026-109618 and CVE-2026-109619Tanium
  13. There isn't an easy exploit for this PHP vulnerabilityElias Taylor
  14. PHP blames supply chain security biz Chainguard for putting entire web at riskThe Register
  15. PHP2Shell: 22M exposed servers at risk as emergency patches releasedTechTarget
  16. PHP ships emergency patches for critical PHP2Shell flawsBleepingComputer
  17. GitLab Critical Patch Release: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13GitLab
  18. Meta ordered to pay $25 billion penalty in New Mexico Cambridge Analytica caseCNBC
  19. Tell HN: 2x PHP RCE CVEs with CVSS 10.0 IncomingHacker News

Niko from Axrisi

Nikoloz Turazashvili · Vexrail · Axrisi

LinkedIn · dev.to · GitHub · X · Substack

Powiązane filmy