Stručně: Zda se vás PHP2Shell týká, závisí na třech věcech: na verzi PHP, na provozním režimu a na tom, zda a jak bylo záplatováno. Pokud si nejste jisti, ozvěte se hned. Týká se to vás? Zavolejte nám. Pomůžeme. Situaci ověříme na dálku přímo na serveru, ne podle dojmu, a zranitelnost uzavřeme, pokud je otevřená.
Nyní nic nemažte a nic znovu nenasazujte. I když chcete jen zjistit, zda se vás to týká: pokud mohl být server už napaden, potřebujeme soubory a logy beze změn. Nahlásit nouzi a projdeme kontrolu společně.
Týká se to vás? Tyto případy patří na kontrolní seznam
PHP2Shell jsou dvě kritické zranitelnosti přímo v PHP (CVE-2026-109618 a CVE-2026-109619, obě s nejvyšším hodnocením 9.2 podle CVSS v4.0). Umožňují spustit škodlivý kód na dálku bez přihlášení. Zranitelné mohou být všechny provozní režimy: PHP-FPM, Apache s mod_php, php-cgi, FrankenPHP a LiteSpeed. Zkontrolujte každý z těchto systémů:
- vlastní servery, vServery a root servery s PHP
- hostingové balíčky a spravované servery, i když nemáte přístup ke konfiguraci
- kontejnery a platformní služby, které obsahují image s PHP
- testovací systémy, staging prostředí a zapomenuté staré systémy dostupné z internetu
- NAS, appliance nebo software od dodavatelů, které interně používají PHP
Právě zapomenuté systémy jsou rizikem. Podle Unit 42 existuje více než 22,6 milionu exponovaných, potenciálně zranitelných instancí a německé BSI počítalo s rychlým plošným zneužitím.
Co udělat hned
- Vytvořit inventář. Sepište všechny servery, domény a hostingové smlouvy, na kterých PHP běží, a kdo za ně odpovídá.
- Zjistit verzi PHP u každého systému. Na serverech příkazem
php -v. Pamatujte, že příkazová řádka může používat jinou verzi než webový server. - Ujasnit provozní režim. Běží PHP jako PHP-FPM, jako mod_php, nebo přes LiteSpeed? U mod_php odhaduje tým PHP riziko nejvyšší.
- Zeptat se hostingu a dodavatelů. Písemně: jaká verze běží, byla oprava nasazena, byly všechny procesy restartovány?
- Uchovat logy. Odborný tisk radí zachovat logy od 20. 10. 2026.
- Dlouho nečekat. Pokud je systém otevřený a záplatu nelze nasadit ihned, doporučuje německé BSI webový server dočasně odpojit od sítě.
Jak PHP SOS konkrétně pomáhá?
Zasažení ověřujeme na dálku a s doklady.
- Zmapování situace: Necháme si popsat váš inventář a systémy seřadíme podle dostupnosti a rizika.
- Zajištění a uzavření: Kde je zranitelnost otevřená, nejprve zajistíme stav a pak ji uzavřeme aktualizací včetně restartu. Kde to ihned nejde, nasadíme přechodná opatření, která nejsou úplnou ochranou.
- Kontrola a vyčištění: Ověříme, zda byla zranitelnost před nasazením záplaty zneužita, a v případě potřeby vyčistíme. Jasně oddělujeme, zda je server zasažen a zda byl případně už napaden.
- Hardening a zpráva: Dostanete seznam podle systémů: verze, provozní režim, doklad o záplatě, otevřené body.
Jak zasažení doložit
Samotné číslo verze nestačí, protože poskytovatelé opravy zpětně portují. Ubuntu 24.04 například podle zpráv zobrazuje i po aktualizaci stále 8.3.6. Spolehlivé jsou tři cesty:
| Cesta | Co ukazuje | Omezení |
|---|---|---|
| Porovnat verzi s opravenými verzemi | 8.5.12, 8.4.27, 8.3.36 nebo 8.2.35 či vyšší je opraveno | platí jen pro původní verze, ne pro backporty |
Test na memory_hard_limit_percent |
bool(false) znamená: direktiva neznámá, tedy zranitelné |
spouštět zvlášť pro každou verzi a provozní režim |
| Prohledat changelog balíčku podle čísel CVE | dokládá backporty u distribucí | zdrojem je bezpečnostní archiv poskytovatele |
Test vypadá takto:
php -r 'var_dump(ini_get("memory_hard_limit_percent"));'
Jak správně ověřit verzi a stav záplat, popisuje stránka Jak správně zkontrolovat verzi PHP a stav záplat. Přehled větví podává článek Které verze PHP jsou zranitelné?. Proč může zobrazená verze vypadat stará i přes záplatu, vysvětluje příspěvek php -v ukazuje staré číslo.
Zranitelné a už nezáplatovatelné: PHP 8.1 a starší
Pro PHP 8.1 a starší už projekt PHP nevydává oficiální aktualizace, jen minimální backporty ve zdrojovém kódu pro 7.4, 8.0 a 8.1. Kdo takovou verzi používá, má většinou dvě cesty: poskytovatele s doloženým backportem, nebo migraci na udržovanou verzi. Komerční nabídky dlouhodobé podpory existují, ale zda a kdy PHP2Shell pokrývají, musí poskytovatel potvrdit písemně. Pomůžeme se zařazením na stránce PHP 8.1 a starší: co nyní platí a s provedením v rámci služby záplatování PHP.
Co nám poslat
- Seznam vašich serverů, domén a hostingů
- Verze PHP u každého systému, pokud je známa
- Provozní režim a webový server, pokud jsou známy
- Informaci, zda je předřazen Cloudflare nebo jiná ochrana a zda je původní server dostupný přímo
- Odpovědi vašeho hostingu, pokud jste se již ptali
- Kontaktní osoba pro schvalování a restarty
Proč PHP SOS
Pracujeme v duchu „Made in Germany“ a spolu s naší partnerskou sítí odborníků na kybernetickou bezpečnost se již více než 25 let specializujeme na IT bezpečnost. Máte jeden kontaktní bod, který projde váš inventář a každé tvrzení doloží, místo aby jen odečítal čísla verzí. Pracujeme na dálku, bez cestování, a dokumentujeme, co jsme zkontrolovali. Výrok typu „bezpečné“ vydáváme jen v té míře, v jaké ho lze doložit. Pro větší prostředí přichází v úvahu okamžitá pomoc při PHP2Shell.
Týká se to vás? Zavolejte nám. Pomůžeme.
Pokud nevíte, zda se vás to týká, je to dostatečný důvod ozvat se hned. Zavolejte nebo napište přes WhatsApp. Přebíráme situaci od první zprávy a ověříme ji s vámi přímo na serveru. Nahlásit nouzi hned.
Časté dotazy
Týká se mě PHP2Shell, když používám jen WordPress nebo e-shop?
Možná ano. Zranitelnosti jsou v PHP, ne v CMS. Rozhodující je, jaká verze PHP a jaký provozní režim u vás skutečně obsluhuje požadavky; aktualizace WordPressu na tom nic nemění.
Stačí číslo verze, abych věděl, že jsem záplatovaný?
Ne vždy. Distribuce a hostingové firmy někdy nasazují opravy jako backport, a pak číslo verze zůstane stejné. Vypovídající je changelog balíčku s čísly CVE nebo písemné potvrzení vašeho poskytovatele.
Existuje rychlý test, zda moje verze PHP obsahuje opravu?
Podle příručky PHP je zranitelná taková verze, která direktivu memory_hard_limit_percent nezná. Test je třeba spustit zvlášť pro každou verzi PHP a každý provozní režim, protože příkazová řádka může používat jinou verzi než webový server.
Týká se to i starších verzí PHP, například 7.4 nebo 8.0?
Podle odborného tisku jsou zranitelné téměř všechny verze až po PHP 5.4. Pro 8.1 a starší už projekt PHP nevydává oficiální aktualizace, jen minimální backporty ve zdrojovém kódu. Zda je poskytovatel nasadil, musí potvrdit on.
Ochrání mě Cloudflare, když jsem zranitelný?
Částečně. Cloudflare nasadil ochranná pravidla, ale sám varuje, že nenahrazují aktualizaci. Pokud je váš původní server dostupný přímo, ochrana se obchází.