Krzysztof Śmiałowski / Software & AI
O mně Novinky Chat AI ↗ Hra ↗ Kontakt

← Všechny novinky

AI pomohla najít díru v PHP, ale záplatování starých serverů je pořád práce pro člověka

22 října 2026

Tento článek vznikl pomocí řešení, které pod lidským dohledem orchestruje farmu modelů AI, mimo jiné při rešerši, ověřování, korekturách a překladu.

AI pomohla najít díru v PHP, ale záplatování starých serverů je pořád práce pro člověka

Ve středu 21. října vývojáři PHP vydali verze 8.5.12, 8.4.27, 8.3.36 a 8.2.35, ohlášené den předem bez podrobností. Opravují dvě zranitelnosti souhrnně nazvané PHP2Shell, obě s hodnocením 9,2 z 10 na stupnici CVSS. Nejnebezpečnější jsou na serverech Apache s mod_php: útočník tam může bez přihlášení, pouhými požadavky HTTP, spustit vlastní kód dřív, než web stihne vykonat jediný řádek. Bezpečné ale nejsou ani jiné způsoby spouštění PHP, včetně oblíbeného PHP-FPM. Na PHP běží zhruba 69 % webů, u nichž lze zjistit jazyk na straně serveru, mimo jiné Wikipedie a weby na WordPressu, uvádí The Verge s odvoláním na W3Techs. O objevu chyb jsme psali ve středu.

Nejstarší zranitelný kód pochází z PHP 5.4, tedy z roku 2012. Samotnou chybu v obsluze nedostatku paměti někdo zaznamenal už v roce 2024 při opravách nedostatků, na které upozornil externí audit. Nikdo však neukázal, jak ji zneužít, a tak bezpečnostní tým PHP, kterému chyběli lidé, opravu odkládal - PHP Foundation to označuje za „strukturální selhání“. V srpnu letošního roku chybu nezávisle na sobě nahlásily společnosti Calif a OpenAI a o dva týdny později také společnost Wiz, kterou vlastní Google.

Společnost Wiz uvádí, že využila modely Gemini 4 Argon a GPT-5.6 Sol a také vlastní nástroj Wiz Atlas. Podle firmy „se špičkovými modely AI a správnými nástroji zvládl jediný výzkumník za týden to, co by dříve týmu světové třídy zabralo měsíce práce“. Který model pomohl společnosti Calif, víme jen od OpenAI. Společnost Calif hledala chyby v rámci programu Patch the Planet, který provozuje OpenAI, a právě OpenAI oznámila, že chyba byla nalezena díky GPT-5.6 Sol. Samotná společnost Calif model nejmenuje, uvádí jen, že používala modely dostupné všem.

AI zrychluje i práci útočníků. CJ Moses, šéf informační bezpečnosti Amazonu, vysvětluje, že dříve začínala většina útoků až po zveřejnění funkčního exploitu. Podle Mosese dnes AI umožňuje levně sestavit funkční exploit jen z opravy nebo z bezpečnostního upozornění. Útočníků tak může být víc a mohou udeřit během několika hodin, či dokonce minut od zveřejnění podrobností. Matthew Prince, generální ředitel Cloudflare, uvedl, že Cloudflare během 45 minut od vydání opravy zaznamenal ve své síti desítky tisíc pokusů o zneužití a za necelých 12 hodin už miliony.

Někteří útočníci nečekali ani na opravu. Podle PHP Foundation unikly den před vydáním na internet identifikátory zranitelností a společnost Calif omylem nakrátko zveřejnila video funkčního útoku. Cloudflare zaznamenal tisíce pokusů během 10 hodin před vydáním opravy. Amazon našel ve svých datech ještě dřívější pokus, ze 17. října, tedy z doby před únikem. Jak se o chybě někdo dozvěděl už tehdy, není známo. Úspěšný průnik ale zatím nikdo nepotvrdil.

Některé instituce raději nečekaly. Jak uvádí CNBC s odvoláním na agenturu Reuters, V Nizozemsku byly odstaveny mimo jiné vládní portál Overheid.nl, web rotterdamského přístavu, a dokonce i web NCSC, tedy přímo národního centra kybernetické bezpečnosti. Ve Finsku státní poskytovatel IT služeb Valtori odpojil veřejné vládní služby od internetu a ve Francii byly vypnuty weby místních úřadů. CERT Polska, polský národní tým CERT, doporučil totéž ještě před vydáním opravy: dočasně vypnout služby na PHP dostupné z internetu, pokud to nenaruší chod organizace. Americká agentura CISA radí odpojit od sítě systémy, které nelze ihned aktualizovat, a také všechno, co běží na PHP 8.1 nebo starším.

Někteří správci už staré systémy s pomocí AI aktualizovali a popisují to na fórech. V jednom příspěvku na Redditu stojí: „Upgradovat složitý systém LMS z 5.6 na 8.5 mi s Claudem trvalo jen 30 minut.“ V jiném se píše, že při správě stovek webů na Drupalu 7 by tyto aktualizace bez AI trvaly měsíce a že chyby, které se objeví po změně verze PHP, teď opravuje Claude Code. Další příspěvek popisuje dvě hodiny práce s agentem: procházení vlastních systémů a plánování aktualizace. Následovalo zadání připravit souhrnný dashboard a odchod na oběd. Na Hacker News zazněla zkušenost s Claudem, který převedl blog na MediaWiki na statické stránky, takže blog může až do opravy serveru běžet bez PHP. Jde jen o výpovědi samotných autorů a nikdo je neověřil.

Jenže to jsou příběhy lidí, kteří věděli, co dělají, a mohli na novou verzi přejít v klidu. Kdo dnes musí ve spěchu zachraňovat produkční server, má to mnohem těžší, a takových serverů je spousta. Recorded Future cituje skeny VirusTotal: servery na zhruba 1,1 milionu IP adres prozrazují verzi PHP a na 758 000 z nich, tedy téměř 70 %, běží PHP 8.1 nebo starší. Tým PHP tyto verze už nepodporuje a nevydal pro ně hotové vydání s opravou. Americká agentura CISA radí takové servery odpojit od sítě, dokud nebudou aktualizovány.

Zbývají opravy z linuxových distribucí a hostingových ovládacích panelů, ale ne každý se jich dočká. Podle přehledu Digital Applied Amazon některé balíčky PHP v Amazon Linuxu neplánuje opravit vůbec. Ubuntu 20.04 dostalo opravu jen v Ubuntu Pro, které je zdarma nejvýše na pěti strojích. Laravel Forge proto radí každý server s Ubuntu 20.04 nebo starším nahradit novým a ten starý vypnout.

Bez hotového balíčku zbývají jen opravy zdrojového kódu, které tým PHP zveřejnil pro verze 7.4, 8.0 a 8.1. Je třeba je aplikovat vlastními silami a PHP zkompilovat, a to se stejnými rozšířeními jako dosud. Starší verze nedostaly ani to. Kdosi na Redditu provozuje web na PHP 5.6, a proto Claude dostal za úkol přenést opravy do této verze. Hned nato přišlo přiznání: „Dá se to používat? Kdo to sakra ví.“

Ani po aktualizaci není snadné poznat, zda je server bezpečný. Číslo verze z php -v to nerozhodne: v přehledu Digital Applied tvoří 21 ze 76 položek balíčky, které opravu dostaly, ale ponechaly si staré číslo verze. Například Ubuntu 24.04 po aktualizaci dál ukazuje 8.3.6. I nástroj OpenAI pro kontrolu serverů upozorňuje, že výsledek „UNKNOWN“ neznamená „opraveno“. Instalací opravy to ale nekončí. Je třeba restartovat všechny procesy PHP-FPM, protože ty spuštěné před aktualizací dál vykonávají starý, zranitelný kód. Na serverech s cPanelem nebo Pleskem se každá nainstalovaná verze PHP musí opravit zvlášť.

Rychlá provizorní řešení mají svou cenu. Blokování požadavků multipart, které doporučuje mimo jiné Sansec, znemožní nahrávání souborů a v některých obchodech, jak firma sama přiznává, rozbije i nákupní košík. Zrušení limitu paměti (memory_limit=-1) chybu v obsluze nedostatku paměti obejde, ale jediný požadavek pak může spotřebovat veškerou paměť serveru. A tým PHP varuje, že žádné nastavení server plně neochrání.

Selhala i AI. Podle zákazníků Hostingeru firemní chatbot tvrdil, že PHP-FPM zranitelné není, přestože vývojáři PHP otevřeně píší, že je. Na Hacker News si několik uživatelů stěžovalo, že bezpečnostní filtry v Claudovi a Codexu jim přerušovaly práci na této zranitelnosti.

Z těchto výpovědí vyplývá jednoduché rozdělení. AI výrazně zrychlí práci tomu, kdo ví, v jakém režimu PHP na jeho serveru běží, odkud pocházejí balíčky a co po aktualizaci zkontrolovat. I ten, kdo to neví, dostane hotový plán, ale nedokáže posoudit, zda je dobrý.

Majitel webu, který server sám nespravuje, může začít dvěma otázkami pro toho, kdo se o něj stará: zda už je oprava nainstalovaná a zda někdo prošel logy od 17. října, kdy Amazon zaznamenal první pokus o zneužití. Pokud nikdo neumí odpovědět, v jednom komentáři na Hacker News zaznělo doporučení zvážit spravovaný hosting, kde PHP aktualizuje poskytovatel.

Slovníček: CVSS - stupnice od 0 do 10, na které se hodnotí, jak závažná je bezpečnostní zranitelnost. Exploit - program nebo posloupnost požadavků, které zranitelnost v praxi zneužívají. mod_php - PHP spuštěné jako modul webového serveru Apache. PHP-FPM - PHP spuštěné jako samostatná skupina (pool) procesů, jíž webový server předává požadavky. Multipart - formát požadavku HTTP, kterým prohlížeče odesílají formuláře se soubory.