Kritické chyby v PHP, kterým se říká PHP2Shell, už nejsou jen předmětem skenování a ukázkových exploitů. Tým Unit 42 společnosti Palo Alto Networks popsal případ, kdy se útočníci přes ně dostali k evropskému úřadu a do dvou hodin od vniknutí získali hashe hesel a tajemství pro vícefaktorové ověření (MFA). Pokud na vašich serverech běží PHP a opravu z 21. října jste ještě nenasadili, je to práce na dnes.
Co se stalo
PHP je programovací jazyk, na kterém běží velká část webů a redakčních systémů. Dvojice chyb CVE-2026-109618 a CVE-2026-109619, souhrnně PHP2Shell, dovoluje útočníkovi bez přihlášení spustit na serveru vlastní kód. Obě mají hodnocení 9,2 podle CVSS 4.0. Opravu vydalo PHP 21. října 2026 a psali jsme o ní v článku PHP vydalo opravu dvou kritických chyb.
Nové je to, co se děje po vniknutí. Unit 42 ve svém přehledu hrozby z 23. října uvádí, že u jednoho evropského úřadu útočníci po zneužití chyby sáhli nejdřív po hashích hesel a MFA tajemstvích z autentizační databáze, postavili NTLM relay tunel do Active Directory a pokusili se získat oprávnění Domain Admin. Od prvního zneužití do krádeže přihlašovacích údajů podle Unit 42 uplynuly dvě hodiny.
Unit 42 zároveň popisuje, že průběh nese znaky útočníka řízeného agentní AI, tedy modelem, který si sám plánuje další kroky. Dávky příkazů byly obalené oddělovači jako ==SHELLUSER== a ==PASSWD==, aby byl výstup strojově čitelný, úlohy šly krátce za sebou a po neúspěchu následoval rychlý přeskok jinam. Praktický dopad je jediný, ale podstatný: mezi vniknutím a krádeží údajů nemusíte mít hodiny, ale minuty.
Druhá zpráva je o cílení. Společnost CYFIRMA 25. října popsala kampaň, která z 21 ovládnutých uzlů pomalu a v malém objemu prověřuje 216 nezáplatovaných nebo jen částečně ošetřených serverů. Mezi cíli jsou podle ní úřady, finanční instituce, logistika, letiště, výroba a platební platformy, a to i v Evropské unii. Uzly útočníci opouštějí při prvních známkách blokování, takže upozornění založené na počtu pokusů kampaň nezachytí. CYFIRMA ji se střední spolehlivostí přisuzuje okruhu severokorejské skupiny Lazarus. Atribuci proto berte jako hodnocení dodavatele, ne jako prokázaný fakt.
K rozsahu vystavení: telemetrie Cortex Xpanse podle Unit 42 vidí přes 22,6 milionu vystavených instancí, které mohou být zranitelné. Je to číslo dodavatele a mluví o vystavení, ne o počtu potvrzeně zranitelných nebo napadených organizací.
Týká se vás to?
Týká se to každého serveru, na kterém PHP obsluhuje webový provoz, ať jde o veřejný web, interní aplikaci nebo administraci. Opravené verze jsou 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Starší větve, které už nemají podporu, opravu nedostanou a je potřeba přejít na podporovanou verzi.
Dvě věci se přehlédnou nejčastěji. První je, že aktualizace redakčního systému, modulu nebo aplikace zranitelný interpret PHP nevymění. Musíte najít runtime, který webový provoz skutečně obsluhuje (php-fpm, mod_php, php-cgi, FrankenPHP nebo lsphp u LiteSpeed), aktualizovat ten a restartovat workery. Druhá je, že PHP bývá přibalené i v podnikových produktech a administračních konzolích, kde ho nespravujete vy. Stav u výrobců jsme shrnuli v článku PHP2Shell se týká i firewallů a konzolí.
Co udělat hned
- Aktualizujte PHP na 8.5.12, 8.4.27, 8.3.36 nebo 8.2.35 a restartujte PHP workery. Potom ověřte verzi na běžícím procesu, ne jen v balíčkovém systému.
- Když aktualizace hned nejde, oddělte podle doporučení CERT-EU aplikace dostupné z internetu od veřejné sítě, dokud oprava není nasazená a ověřená.
- Pokud jste záplatovali s odstupem od 21. října, předpokládejte, že se někdo mohl dostat dál. Rotujte přihlašovací údaje a tokeny, které byly na serveru dostupné, resetujte MFA tajemství uložená v aplikaci a zkontrolujte Active Directory na pokusy o relay a o eskalaci oprávnění.
- K třetí chybě zveřejněné 23. října (CVE-2026-115560) mimořádná oprava nevyjde. PHP riziko považuje za nepravděpodobné a týká se neobvykle nastavených aplikací. CERT-EU doporučuje nasadit mitigaci, kterou PHP popsalo.
Jak poznat, že už jste napadení
Unit 42 zveřejnila vyhledávací dotazy (XQL pro Cortex XDR), které hledají procesy spuštěné v kontextu webového serveru nebo PHP workeru, tedy potomky procesů jako apache2, httpd, php-fpm, php-cgi, frankenphp nebo lsphp. Stejnou logiku můžete použít i v jiném nástroji: shell nebo systémový příkaz spuštěný z webového workeru je podezřelý téměř vždy. Unit 42 sama upozorňuje, že dotaz není specifický pro tyto dvě chyby a může hlásit i legitimní činnost, takže nálezy je potřeba porovnat s tím, co vaše aplikace běžně dělají.
V popsaném případě šlo konkrétně o průzkum autentizační databáze se získanými údaji, anonymní LDAP dotazy na domain controller přes curl a hledání účtu administrátora, pak NTLM relay. V logách se dá hledat i zmíněné obalení výstupu oddělovači.
Nestíháte to sledovat?
Pokud řídíte bezpečnost vedle jiné práce, dává smysl mít někoho, kdo takové věci sleduje za vás a řekne, co se vás skutečně týká. V CypherOnu pracujeme jako součást týmu zákazníka a za svými doporučeními stojíme, dokud nejsou zavedená. Když právě řešíte incident, ozvěte se přes stránku Právě řešíte incident. Když chcete vědět, jak jste na tom, začněte posouzením bezpečnosti, nebo nám napište na kontaktní stránce. Úvodní konzultace je bezplatná.
Zdroje: Unit 42, přehled hrozby PHP2Shell a popis průniku · CERT-EU, advisory 2026-018 ke kritickým chybám v PHP · NVD, CVE-2026-109618 · The Hacker News, kampaň a skenování podle CYFIRMA