PHP2Shell: dvě kritické chyby PHP, únik embarga a co je skutečně známo o zneužití
PHP vydalo nouzové opravy pro dvě kritické chyby vzdáleného spuštění kódu, CVE-2026-109618 a CVE-2026-109619, nazvané PHP2Shell.
PHP vydalo nouzové opravy pro dvě kritické chyby vzdáleného spuštění kódu, CVE-2026-109618 a CVE-2026-109619, nazvané PHP2Shell. Vydání proběhlo 21. října 2026. Epizoda vysvětluje dvě paměťové chyby jednoduchými slovy, proč stopa z auditu z roku 2024 čekala na opravu, jak uniklo embargo a které zdroje co říkají o zneužití. Pokrývá také kritické vydání opravy GitLabu ve stejný den a pokutu společnosti Meta ve výši 25 miliard dolarů v Novém Mexiku.
Přečtěte si psané vydání (anglicky) ↗
Co toto video pokrývá
- Obě chyby jsou týmem PHP hodnoceny 9,2 na CVSS v4.0. Opravené verze jsou PHP 8.2.35, 8.3.36, 8.4.27 a 8.5.12; PHP 7.4, 8.0 a 8.1 obdržely pouze zdrojové záplaty. PHP uvádí, že aktualizace je jedinou kompletní mitigací.
- První chyba pochází z toho, že PHP nechá požadavek napůl hotový, když v nevhodný okamžik dojde paměť. Druhá chyba pochází z ukazatele na paměť jednoho požadavku, který může použít pozdější požadavek ve stejném workeru. Na Apache s mod_php se první cesta spustí před kódem aplikace.
- Vývojář jádra PHP našel první známky paměťového problému během auditu v roce 2024. PHP Foundation uvádí, že konkurenční opravy měly kompromisy a bezpečnostní tým založený na konsensu se potýkal s výběrem, což nazývá strukturálním selháním.
- Nadace uvádí, že ID CVE unikla 20. října, Calif omylem zveřejnil video s proof-of-concept a Chainguard zveřejnil sestavené obrazy s opravou více než šest hodin před vydáním. CEO Chainguardu říká, že lidé již byli zasaženi a že chyby našel nezávisle.
- Zdroje se neshodují ohledně zneužití. Amazon zaznamenal pokus 17. října a později uvedl, že PHP2Shell byl široce zneužíván. watchTowr hlásil zneužití v reálném prostředí. CISA v době zveřejnění nezaznamenala zneužití a tým PHP nenašel žádný funkční exploit při vydání. Mnoho veřejných proof-of-concept skriptů údajně nefunguje.
- Zkontrolujte každé místo, kde běží PHP, včetně kopií uvnitř jiného softwaru, aktualizujte, restartujte workery a zkontrolujte protokoly zpět k 17. říjnu.
Otázky a odpovědi
Jaké jsou dvě zranitelnosti PHP2Shell?
PHP2Shell pojmenovává dvě kritické chyby PHP, CVE-2026-109618 a CVE-2026-109619, obě hodnocené týmem PHP 9,2. První nechá požadavek napůl hotový, když PHP v nevhodnou chvíli dojde paměť, a čištění mu pak důvěřuje. Druhá zanechá ukazatel na paměť jednoho požadavku, který může použít pozdější požadavek ve stejném workeru. Obě mohou vést ke spuštění kódu bez přihlášení.
Které verze PHP mají opravu pro PHP2Shell a co s nepodporovanými verzemi?
Projekt PHP vydal opravy ve verzích 8.2.35, 8.3.36, 8.4.27 a 8.5.12 21. října. Pro verze 7.4, 8.0 a 8.1 zveřejnil pouze zdrojové záplaty a BleepingComputer uvádí, že distribuce a dodavatelé dlouhodobé podpory mohou poskytnout zpětně portované opravy. PHP uvádí, že neexistuje žádné kompletní alternativní řešení, takže aktualizace nebo požádání dodavatele o záplatovaný balíček je jedinou bezpečnou volbou.
Proč známá chyba paměti PHP čekala na opravu až do října 2026?
PHP Foundation uvádí, že hlavní vývojář našel první známky paměťového problému během bezpečnostního auditu v roce 2024, ale nebyla známa žádná cesta zneužití a každá kandidátská oprava měla kompromisy, jako jsou narušení kompatibility. Bezpečnostní tým rozhoduje konsensem a potýkal se s výběrem, což Nadace nazývá strukturálním selháním způsobeným procesem rozhodování a nedostatkem zdrojů.
Je PHP2Shell zneužíván a jak snadné je ho zneužít?
Zdroje se neshodují. Amazon zaznamenal pokus o zneužití 17. října a později uvedl, že PHP2Shell byl široce zneužíván, a watchTowr hlásil zneužití v reálném prostředí. CISA v době zveřejnění nezaznamenala zneužití a tým PHP neviděl žádný funkční exploit při vydání. watchTowr říká, že většina veřejných skriptů pro zneužití havaruje nebo nic nedělá, a VulnCheck zjistil, že spuštění kódu funguje pouze v některých nastaveních.
Jaký byl verdikt The Daily Diff na PHP2Shell?
Verdikt The Daily Diff zněl SHIP IT: odešlete aktualizaci PHP dnes večer, protože nová verze je jedinou kompletní opravou. CISA doporučuje inventarizovat každý systém běžící na PHP, včetně kopií uvnitř jiného softwaru, aplikovat záplatu a odpojit systémy PHP, pokud je nelze aktualizovat. Amazon radí zkontrolovat protokoly zpět k 17. říjnu, kdy zaznamenal první pokus.
Přeložený přepis
Přeloženo z původního anglického vyprávění. Dostupné audio a titulky jsou řízeny YouTube.
Kdo se pokusil o PHP2Shell o čtyři dny dříve?
0:00 Bezpečnostní embargo by mělo udržet chybu v tajnosti, dokud se neodešle oprava. Amazon zaznamenal pokus proti kritické chybě PHP o čtyři dny dříve. V tomto videu, kdo to našel? Jak uniklo embargo? A jak je to doopravdy špatné? A společnost obviněná z úniku má obranu, kterou jsem nečekal. Dostanu se k tomu. Je čtvrtek, dvacátého druhého října, a toto je The Daily Diff.
0:21 PHP je skriptovací jazyk, který vytváří webové stránky na serveru těsně předtím, než se k vám dostanou. Je mu přes třicet let a podle jednoho odhadu běží na zhruba sedmdesáti procentech webových stránek, včetně WordPressu a softwaru za Wikipedií. Vývojáři si z něj rádi dělají legraci, obvykle ze stránky, kterou jim PHP servíruje. Jeho údržba je neziskovou organizací s asi třinácti inženýry.
Jaké jsou dvě chyby PHP2Shell?
0:41 Ve středu PHP vydalo nouzové opravy pro dvě kritické chyby, které umožňují cizinci spustit kód na serveru bez přihlášení. Dohromady se nazývají PHP2Shell a sahají až do PHP pět bodů čtyři. Zde je první chyba jednoduchými slovy. PHP dává každému požadavku paměťový rozpočet. Pokud požadavek narazí na tento limit v přesně špatnou chvíli, PHP se rychle stáhne a požadavek zůstane napůl hotový. Pak krok úklidu důvěřuje napůl hotové věci.
1:07 Druhá chyba je zbytek. Fatální chyba může zanechat poznámku ukazující na paměť, která patřila poslednímu požadavku. Stejný worker zpracuje další požadavek a sleduje poznámku. Tou dobou už na této adrese bydlí někdo jiný. Na Apache s mod PHP se poškození stane dříve, než se spustí váš vlastní kód, takže vaše přihlašovací stránka nikdy nedostane hlas. Wiz říká, že je ohrožen i skript hello world. Oprava odstraňuje nouzový výstup PHP pro vyčerpání paměti.
1:32 Místo aby se PHP uprostřed požadavku stáhlo, nyní se zdvořile zastaví na dalším bezpečném bodě. Zvláštní je, jak stará je první stopa.
Proč známá chyba čekala dva roky?
1:39 V roce 2024 externí bezpečnostní audit přivedl hlavního vývojáře PHP k prvním známkám paměťového problému. Nebyl znám žádný exploit a každá oprava něco rozbila. Tým, který rozhoduje konsensem, si nemohl vybrat, takže chyba čekala. Pak v srpnu, nálezci dorazili během několika dní.
Kdo našel PHP2Shell a jak?
1:56 Výzkumník Calif Ryan Austin ji našel 1. srpna, pracující v rámci programu OpenAI Patch the Planet. OpenAI nezávisle nahlásila stejnou kořenovou příčinu. Wiz našel varianty o několik týdnů později s modely Gemini a GPT. Austin říká, že použil modely, které může získat kdokoli, plus teorii o tom, kde se skrývají staré chyby PHP. OpenAI říká, že klíčem byla hraniční AI. Chyba se skrývala déle než deset let. Vydání bylo plánováno na čtvrtek.
Jak uniklo embargo na PHP2Shell?
2:21 V úterý začala online kolovat dvě čísla CVE, s chybným časem vydání a chybným skóre deset. PHP vydání posunulo o den dopředu. Téhož večera Calif omylem zveřejnil video svého proof of concept v provozu a kopie přežily smazání. Ve středu ráno, více než šest hodin před vydáním, Chainguard zveřejnil sestavené obrazy obsahující opravu. PHP říká, že každý útočník mohl tuto opravu studovat, zatímco všichni ostatní čekali.
2:46 Záplata je také rozdíl a útočníci čtou rozdíly.
Je PHP2Shell zneužíván a kým?
2:50 Takže kdo je vlastně zasažen? Amazonův honeypot zaznamenal pokus 17. října a později uvedl, že PHP2Shell je široce zneužíván. watchTowr hlásí zneužití v reálném prostředí. Cisa uvedla, že při zveřejnění žádné nezaznamenala, a tým PHP neviděl žádný funkční exploit při vydání. CEO Cloudflare řekl, že zaznamenal tisíce pokusů během deseti hodin před oznámením a miliony do čtvrtečního rána.
3:13 Amazon je v jednom bodě opatrný. Neví, zda by jeho nejčasnější pokusy fungovaly na skutečném systému. Pokus je pouze klepání na dveře. Takže jak je to doopravdy špatné? watchTowr říká, že veřejné exploity, které se šíří, většinou havarují nebo nic nedělají. VulnCheck říká, že spuštění kódu funguje v některých nastaveních a žádné z veřejných nepřekonává randomizaci paměti na standardních serverech x86. Výzkumník Elias Taylor říká, že to zdaleka není tak snadné jako Log4Shell.
3:40 Všichni stále říkají záplatujte. Vlády nečekaly na verdikt.
Co vlády odpojily?
3:44 NSA řekla organizacím, které nemohly záplatovat, aby odpojily systémy PHP, a britské Národní centrum kybernetické bezpečnosti dalo podobnou radu. Nizozemské stránky, včetně národní služby digitální identity, zatemněly, spolu s pařížskou policejní stránkou. Wikimedia z preventivních důvodů odstavila několik systémů. Palo Alto Networks spočítal více než dvacet dva milionů exponovaných instancí. A australský profesor učinil nejostřejší poznámku. Stránky, kterých se bát, jsou ty, které dnes nejsou dole.
Které verze PHP dostanou opravu?
4:11 Opravy existují pro PHP osm bod dva až osm bod pět. Pro sedm bod čtyři, osm bod oh a osm bod jedna, PHP zveřejnilo pouze zdrojové záplaty. Starší verze nedostanou nic z projektu PHP, takže se zeptejte své distribuce. Alternativní řešení snižují pravděpodobnost, ale PHP říká, že aktualizace je jediným kompletním řešením. Je to stejná lekce jako včerejší epizoda eMudhra,
Co uděláte s PHP2Shell dnes večer?
4:32 protože existence opravy není totéž jako to, že ji má spuštěný proces. Najděte každé PHP ve svém stacku, dokonce i kopie skryté uvnitř jiného softwaru. Aktualizujte, restartujte workery a zkontrolujte protokoly zpět k 17. říjnu. Téhož dne GitLab vydal kritickou opravnou verzi,
Co dalšího dnes vydalo kritickou RCE záplatu?
4:47 devatenáct bod pět bod jedna. Přetečení celého čísla v jeho kompilátoru regulárních výrazů umožňuje neověřenému uživateli spouštět kód na serveru a má skóre deset z deseti. GitLab dot com je již záplatován. Samostatně spravované instalace potřebují aktualizaci.
Proč byla Meta odsouzena k zaplacení 25 miliard dolarů?
5:01 Mezitím v Novém Mexiku soudce nařídil Metě zaplatit dvacet pět miliard dolarů na pokutách za Cambridge Analytica. Porota spočítala více než čtyřicet tři milionů porušení po až pěti tisících dolarů za každé, což činilo asi dvě stě dvacet miliard, než to soudce snížil. Meta říká, že se odvolá a vyhraje. Nyní slibovaná obrana.
Jaká je obrana Chainguardu pro brzkou opravu?
5:19 CEO Chainguardu řekl The Register, že stejné chyby našel sám v pátek večer, poté co se dozvěděl, že v PHP něco přichází, s jednoduchým pokynem k nalezení špatných zranitelností. Říká, že vydal brzy, protože lidé už byli zasaženi. Pokud byste to raději četli než slyšeli ode mě, rozdíl vám přistane ve schránce každé ráno, zdarma na the daily diff dot dev, odkaz níže. Takže dnešní verdikt je SHIP IT.
Co dostane razítko SHIP IT?
5:39 Odešlete aktualizaci PHP dnes večer, protože nové číslo verze je jedinou kompletní opravou. A to je pro dnešek vše. Jsem Niko z Axrisi. Slučujte zodpovědně.
Zdroje
- Today's PHP Security Release, and How We're Strengthening PHP SecurityThe PHP Foundation
- RCE via OOM corruption (GHSA-w8hw-w9fx-j79w)PHP security advisory
- RCE via stale global state (GHSA-6wmf-4rv5-p3rp)PHP security advisory
- Upcoming Critical PHP Security Releasephp.net
- php2shellCalif
- PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the InternetWiz Research
- Amazon Threat Intelligence identifies PHP2Shell exploitation prior to public disclosure in MadPotAWS Security Blog
- Critical Vulnerabilities in PHP Require Immediate PatchingCISA
- Flaw in PHP computer language leads to shutdown of websites around worldThe Guardian
- What is PHP, and how bad is the computer language flaw causing website shutdowns globally?The Guardian
- PHP2Shell Exploitation Started Days Before PatchesSecurityWeek
- PHP2Shell: Responding to CVE-2026-109618 and CVE-2026-109619Tanium
- There isn't an easy exploit for this PHP vulnerabilityElias Taylor
- PHP blames supply chain security biz Chainguard for putting entire web at riskThe Register
- PHP2Shell: 22M exposed servers at risk as emergency patches releasedTechTarget
- PHP ships emergency patches for critical PHP2Shell flawsBleepingComputer
- 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
- Meta ordered to pay $25 billion penalty in New Mexico Cambridge Analytica caseCNBC
- Tell HN: 2x PHP RCE CVEs with CVSS 10.0 IncomingHacker News



