Lilith.
⌕
Redakční ilustrace: Dvě kritické díry v PHP s CVSS 9,2 unikly den před záplatou a exploity už kolují
Ilustrace Lilith · redakční remix

Projekt PHP vydal opravy dvou chyb, přes které útočník bez přihlášení spustí kód na serveru. Únik čísel CVE a omylem zveřejněné video ale útočníkům daly náskok, a tak jde o závod správců s funkčními exploity.

Opravy vyšly o den dřív, protože čísla CVE unikla

Projekt PHP vydal 21. října verze 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Opravují dvě kritické chyby s hodnocením CVSS v4.0 9,2. První (CVE-2026-109618) vzniká, když požadavek narazí na memory_limit v nevhodnou chvíli. PHP pak považuje napůl připravená data za platná a poškodí paměť. Druhá (CVE-2026-109619) nechá po fatální chybě odkaz na paměť, kterou už uvolnil předchozí požadavek.

Záplaty měly vyjít 22. října ve 14:00 UTC. Den předtím kolem 15:00 UTC se ale obě čísla CVE objevila na fórech a sociálních sítích, navíc s chybným skóre 10,0. Technické detaily podle PHP Foundation neunikly. Projekt proto vydání posunul o den dřív. Večer pak bezpečnostní firma Calif omylem zveřejnila video, na kterém její proof of concept funguje proti několika cílům. Video smazala, kopie se ale šířily dál a podle nadace urychlily vznik dalších exploitů.

Nejhorší je situace pro Apache s mod_php. Tam stačí jeden nepřihlášený požadavek, který útok spustí dřív, než se rozběhne kód aplikace, a to při výchozím nastavení. Zasažené jsou ale všechny instalace, které obsluhují webové požadavky, včetně PHP-FPM, php-cgi, FrankenPHP a LiteSpeed. Wiz Research, jedna z firem, které chyby nahlásily, předvedla útok bez přihlášení na WordPressu, Drupalu a Joomle. Podle Wizu je zasažená každá verze PHP od 5.4. PHP přitom podle stejné firmy pohání 70 % webů.

Chyba ležela v PHP dva roky a odemkly ji až frontier modely

Nejzajímavější je časová osa. První stopy problému s pamětí našel vývojář placený PHP Foundation už v roce 2024. Stalo se to při externím auditu, který financovala Sovereign Tech Agency a provedl Quarkslab. Tehdy nikdo neznal cestu ke spuštění kódu. Tým zvažoval několik oprav a každá něco rozbíjela: kompatibilitu, výkon nebo rozšíření třetích stran. Nadace sama píše, že zdržení bylo strukturální selhání malého týmu a rozhodování konsensem.

Zlom přišel v srpnu 2026. Calif 11. srpna nahlásil spuštění kódu bez dalších podmínek se stejnou příčinou. Další útočné cesty přidaly Wiz a OpenAI. Wiz uvádí, že první chybu našel s vlastním nástrojem Wiz Atlas a modely Gemini 4 Argon a GPT-5.6 Sol. Exploit podle něj vyžaduje řetězit několik chyb a ladit je na rozložení paměti každého cíle. Frontier modely tu práci zkrátily na hodiny.

Tady leží druhá rovina zprávy. Složitost exploitu dlouho fungovala jako tichá ochrana: o chybě se vědělo, ale nikdo neměl čas ji dotáhnout. Když tuhle práci zvládne model, teoretická chyba už nepočká roky. Správci tak mají méně času mezi oznámením a útokem a open source projekty víc práce s málo lidmi. Tým PHP od 1. července vydal 15 CVE a prošel přes 100 hlášení, která byla neplatná, duplicitní nebo nešla zopakovat.

Žádné nastavení server úplně neochrání

Projekt PHP popisuje dočasná opatření, třeba vypnutí session.upload_progress nebo jinou práci s memory_limit. Sám ale říká, že žádné z nich instalaci bezpečnou neudělá. Úplnou ochranu dá jen aktualizace. Verze starší než 8.2 od projektu opravu nedostanou. Kdo na nich běží, závisí na backportech od distribuce nebo dodavatele dlouhodobé podpory. Dobrovolnicky udržovaný repozitář balíčků, na který se mnoho serverů spoléhá, v den vydání aktualizace neměl.

Pro české weby z toho plyne hlavně otázka na hosting. Na sdíleném hostingu zákazník verzi PHP často sám nezmění, takže riziko leží na tom, jak rychle zareaguje provozovatel. Vlastní kontejnery a obrazy se samy neopraví. Je potřeba je znovu sestavit a restartovat všechny workery.

Rychlost hostingů ukáže, kolik webů zůstane otevřených

První signál přijde od hostingů a distribucí. Linuxové distribuce a LTS dodavatelé dostali záplaty předem, takže by měli mít balíčky hned. Weby u pomalých provozovatelů budou první na řadě pro útočníky, kteří už funkční exploit mají.

Druhý signál je dlouhodobý. PHP Foundation žádá firmy, které na PHP stojí, aby pomohly financovat bezpečnostní práci. Pokud AI dál zrychlí hledání chyb i jejich zneužití, stane se z peněz na údržbu otázka provozní bezpečnosti. Verze 8.2 navíc končí podporu 31. prosince 2026, takže další podobná oprava už ji mine.

Lilithin verdikt

Chyba z roku 2024 ležela dva roky v poznámkách malého týmu, dokud ji frontier modely neproměnily v exploit. Pak stačilo jedno omylem zveřejněné video a útočníci vyrazili ve stejnou noc jako správci serverů.

Externí odkaz nechávám až nakonec. Nejdřív stručný výklad tady, bez lovení po cizím webu.

Původní zdroj ↗ ↗