AI našla chybu v PHP, která ohrožuje sedm z deseti webů. Opravit ji musíte sami
Dvě kritické zranitelnosti v jádru PHP umožňují spustit cizí kód na serveru bez přihlášení. Jednu z nich našel výzkumník firmy Calif s modelem GPT-5.6 Sol už 1. srpna, opravy vyšly až 21. října. Kdo PHP neaktualizuje, zůstává otevřený.
Redakce: Warpy AI lab.

AI našla chybu v PHP, která ohrožuje sedm z deseti webů. Opravit ji musíte sami
Ve středu 21. října vydali správci PHP mimořádné opravy pro dvě zranitelnosti v samotném jádru jazyka. Dostaly označení CVE-2026-109618 a CVE-2026-109619, dohromady se jim říká PHP2Shell. Obě umožňují spustit na serveru cizí kód bez jakéhokoli přihlášení. PHP je přitom jazyk, na kterém běží velká část internetu.
Novinka ale není další díra v nějaké knihovně. Jednu z chyb našel bezpečnostní výzkumník Ryan Austin z firmy Calif s pomocí modelu GPT-5.6 Sol, a to už 1. srpna. Obě chyby zároveň nezávisle objevil tým Wiz. Podle OpenAI se to dosud nestalo: umělá inteligence našla chybu s dopadem na celý internet dřív než útočníci.
Proč to není problém jedné aplikace
PHP je programovací jazyk, který na serveru skládá stránky. Pohání WordPress, Drupal, Joomlu i MediaWiki, tedy software, na kterém běží Wikipedie. Podle měření W3Techs z 23. října ho používá 69,3 procenta webů, u kterých je serverový jazyk známý. Autoři stránky php2shell.com mluví o zhruba sedmi z deseti webů.
Podstatné je, kde chyba sedí. Je v samotném jádru PHP, ne v aplikaci, kterou na něm provozujete. Autoři výzkumu to říkají jasně: zranitelná je i jednoduchá stránka typu Hello World, pokud běží na postižené verzi. Aktualizace WordPressu ani šablony vám v tomhle případě nepomůže. Podle autorů výzkumu jsou postižené verze od 5.4, která vyšla v roce 2012, do 8.5.
Co útočník dokázal
První chyba vzniká ve chvíli, kdy PHP dojde paměť. Jazyk v takovém případě ukončuje zpracování požadavku pomocí mechanismu longjmp, jenže některé části kódu s tím nepočítají a nechají paměť v neinicializovaném stavu. Když požadavek skončí a PHP po sobě uklízí, může narazit na data, která tam nepatří, a spustit cizí kód.
Druhá chyba je příbuzná. PHP si mezi požadavky drží globální stav, který ukazuje do paměti právě běžícího požadavku. Ten stav se někdy neresetuje správně, takže po uvolnění paměti ukazuje na místo, které už patří jinam. Následkem je čtení paměti procesu, nebo rovnou spuštění kódu.
Výzkumníci předvedli spuštění kódu bez přihlášení na WordPressu, Drupalu a Joomle, konkrétně na jejich tehdejších oficiálních kontejnerových obrazech. Zneužití ale není vázáno na tyhle aplikace. Druhá chyba navíc umožňuje přečíst paměť jiných požadavků, tedy klidně hesla, přístupové tokeny, API klíče nebo certifikáty. To je jiný typ útoku než klasický průnik: data se dají ukrást i bez spuštění vlastního kódu, a takový útok se hůř odhaluje.
Chyba, o které se vědělo a neopravila se
Nejzajímavější část příběhu je starší než letošní léto. Jeden z vývojářů jádra PHP na tuto rodinu chyb narazil už při auditu v roce 2024. Jenže tým se nedohodl, jak ji opravit, a protože nikdo nepředvedl, že se dá skutečně zneužít, problém nedostal prioritu. Zůstal v kódu dva roky.
Tohle je přesně místo, kde umělá inteligence mění pravidla. Ruční hledání chyb v takovém kódu je pomalé a drahé, a když chybí důkaz zneužitelnosti, oprava se odkládá. Model dokáže takovou cestu najít a popsat. Firma Calif k tomu zveřejnila vlastní vysvětlení, stejně jako Wiz, jejíž výzkumníci použili Gemini 4 Argon, GPT-5.6 Sol a svůj nástroj Atlas.
Okno, které trvalo skoro tři měsíce
Od nálezu 1. srpna do oprav 21. října uběhlo skoro tři měsíce. OpenAI tomu říká Defender's Window, okno pro obránce: doba, kdy správci softwaru, poskytovatelé cloudu a provozovatelé mohou připravit opravy a ochrany dřív, než se o chybě dozví útočníci. Na koordinaci se podílely Cloudflare, Google Cloud, AWS, Microsoft, Automattic, Fastly, Akamai, Imperva, Vercel a další, plus americké úřady CISA a ONCD.
Někteří provozovatelé to okno využili k tomu, že raději preventivně vypnuli služby. Wikimedia tak dočasně odstavila svůj nástroj Phabricator. O případu psaly CNN, The Guardian i New York Times, což u chyby v open source projektu nebývá zvykem.
OpenAI zároveň přiznává druhou stranu věci. Stejné schopnosti, které pomáhají chyby nacházet, pomáhají útočníkům rychle stavět nástroje a exploity. Firma očekává, že podobných nálezů bude v příštích měsících výrazně přibývat, a na zlevněný přístup ke svým bezpečnostním nástrojům Daybreak vyčlenila miliardu dolarů pro obránce, kteří chrání důležité služby a nemají peníze na vlastní bezpečnostní tým. Přehled nálezů a pokynů vede na stránce patchtheplanet.org.
Co udělat dnes
- Zjistěte verzi PHP. Opravené jsou 8.2.35, 8.3.36, 8.4.27 a 8.5.12 a novější. Starší větve, například 7.x nebo 5.x, opravu nedostaly.
- Nainstalujte opravu na každý runtime a restartujte Apache, PHP-FPM i dlouho běžící procesy. Samotná aktualizace aplikace nestačí.
- Když upgrade nejde hned, lze jako provizorní krok nastavit memory_limit na -1. Snižuje to některé cesty útoku, ale správu paměti přebírá operační systém. Autoři doporučují paměť krýt přes cgroup v2 a rozhodně nepoužívat RLIMIT_AS nebo RLIMIT_DATA, které mohou spustit stejné chybové cesty.
- Po opravě zkontrolujte nastavení paměti a limit velikosti požadavku. Nová verze PHP má tvrdý limit paměti, po jehož překročení se proces ukončí a úklidové funkce se nespustí.
- U serverů, které mohly být napadené ještě před opravou, záplata nestačí. Projděte logy a hledejte přístupy, které tam nepatří.
Co z toho plyne
Odborníci se neshodnou jen na čísle. Vývojáři PHP ohodnotili chybu 9,2 z 10, bezpečnostní firma watchTowr rovnou desítkou. Na podstatě to nic nemění: chyba v jazyce, který drží sedm z deseti webů, byla veřejně známá 20. října a opravená o den později. Kdo v tu chvíli neaktualizoval, spoléhal na to, že si ho nikdo nevšimne.
Rychlost aktualizací tím přestává být otázkou pořádku v kalendáři a stává se bezpečnostním parametrem. Když model najde kritickou chybu ve starém jazyce a druhá strana má stejné nástroje, okno na opravu se zkracuje pro všechny. Pro vás i pro útočníka.