Stav k 23. 10. 2026. Téma se vyvíjí, před rozhodnutím si proto vždy ověřte aktuální informace na php.net.
Zranitelnost PHP2Shell je dvojice kritických chyb přímo v jazyce PHP, na kterém běží velká část webů, e-shopů a firemních aplikací. Nejde o chybu konkrétního redakčního systému ani pluginu. Neodstraní ji proto aktualizace WordPressu ani úprava kódu aplikace, pomůže jen aktualizace PHP na serveru.
Opravy vyšly 21. 10. 2026. Informace o chybách se dostaly ven ještě před plánovaným zveřejněním, a tak se o nich rychle začalo mluvit i mimo vývojářskou komunitu. Několik evropských úřadů, například německý ITZBund, finské Valtori, francouzské prefektury a nizozemské instituce, preventivně odstavilo část svých webů.
Panika ale na místě není. Postup je jasný a u většiny serverů jde o běžnou aktualizaci. Níže najdete, jestli se vás chyby týkají, jak to ověřit a co dělat, když aktualizace hned nejde.
CVE je veřejné označení konkrétní bezpečnostní chyby, podle kterého se dá dohledat v databázích a v oznámeních výrobců.
CVE-2026-109618 se projeví, když PHP při zpracování požadavku narazí na nedostatek paměti. V tu chvíli může dojít k poškození paměti. CVE-2026-109619 souvisí se zastaralým globálním stavem, který si PHP ponechá z předchozího požadavku. Program pak může pracovat s pamětí, která už byla uvolněna (takzvaný use-after-free).
RCE (remote code execution) znamená, že útočník může na cizím serveru spustit vlastní kód. Obě chyby k tomu mohou vést, proto je PHP hodnotí skórem 9,2 z 10 podle CVSS 4.0, tedy standardní stupnice závažnosti zranitelností. Podrobnosti k hodnocení najdete i v databázi NVD.
Hodnocení zároveň počítá s tím, že útok vyžaduje splnění určitých podmínek. Neznamená to tedy, že je každý server s PHP automaticky napadený.
Zasažené jsou všechny běžné způsoby, jak PHP obsluhuje webové požadavky. Míra rizika se ale liší:
Oficiálně se oprava týká větví 8.2 až 8.5. Výzkumníci ze společnosti Calif ale uvádějí, že nejstarší dotčená cesta sahá až k PHP 5.4, u mod_php k verzi 7.3. Rozsah dotčených verzí tedy zatím není ustálený.
Chyba je v PHP, ne v CMS. Týká se proto webů na WordPressu, Drupalu nebo Joomle stejně jako aplikací postavených na frameworku Nette nebo na vlastním kódu. A to i tehdy, když je kód samotné aplikace v pořádku a všechny pluginy jsou aktuální.
Soubor composer.json říká, jakou verzi aplikace vyžaduje, ne jaká na serveru opravdu běží. Verzi ověřte jedním z těchto způsobů:
Pozor na balíčky z distribucí. Debian nebo Ubuntu často přenášejí opravy do starší verze, takže číslo verze může vypadat neopravené, i když oprava v balíčku je. Rozhoduje verze balíčku uvedená v bezpečnostním oznámení distribuce.
| Větev PHP | Opravená verze | Podpora do |
|---|---|---|
| 8.5 | 8.5.12 | 31. 12. 2029 |
| 8.4 | 8.4.27 | 31. 12. 2028 |
| 8.3 | 8.3.36 | 31. 12. 2027 |
| 8.2 | 8.2.35 | 31. 12. 2026 |
| 8.1, 8.0, 7.4 | bez oficiálního vydání | mimo podporu |
Data konce podpory vycházejí z přehledu podporovaných verzí na php.net.
Na větvích 8.2 až 8.5 stačí aktualizovat na opravenou verzi ve stejné větvi, aplikace by se kvůli tomu neměla měnit. Po aktualizaci restartujte PHP-FPM nebo Apache, jinak budou dál běžet staré procesy. U PHP 8.2 počítejte s tím, že jeho podpora končí 31. 12. 2026.
Pro starší verze PHP oficiální vydání nevyšlo. Projekt PHP pro větve 7.4, 8.0 a 8.1 vydal jen minimální opravy ve zdrojovém kódu. Hotové balíčky pro tyto verze nabízí například Ubuntu (USN-8948-2, u starších LTS verzí jen s Ubuntu Pro), případně dodavatelé dlouhodobé podpory. Debian vydal opravené balíčky pro podporované verze: php8.4 v Debianu 13 (DSA-6574-1) a php8.2 v Debianu 12 (DLA-4848-1).
Pokud aplikace běží na PHP 8.1 nebo starším, opravený balíček je jen první krok. Dalším krokem je naplánovat přechod na podporovanou verzi.
Potřebujete s aktualizací pomoct hned? Využijte urgentní programátorskou pomoc.
Podle bezpečnostního oznámení je jedinou úplnou ochranou aktualizace. Kdo ji nemůže udělat okamžitě, může riziko snížit těmito kroky:
Nastavení nedávejte přes ini_set() ani .user.ini, musí platit pro celý server nebo pool. Nepoužívejte ani omezení RLIMIT_AS a RLIMIT_DATA.
Webový firewall (WAF) riziko také snižuje. Cloudflare nasadil ochranná pravidla zhruba devět hodin před zveřejněním chyb. WAF ale opravu nenahrazuje.
Dne 23. 10. 2026 PHP upozornilo na další chybu, CVE-2026-115560. Plné bezpečnostní oznámení vydá s příštím vydáním. Chyba souvisí se sledováním průběhu nahrávání v session a týká se vzácné kombinace s přepínáním session.serialize_handler. Do dalšího vydání PHP doporučuje nastavit session.upload_progress.enabled=0.
Americká agentura CISA chyby k 23. 10. 2026 nezařadila do katalogu aktivně zneužívaných zranitelností (KEV). Cloudflare ale hlásí první pokusy o útok, s aktualizací proto neotálejte. Chyby objevili výzkumníci společnosti Calif ve spolupráci s Wiz a OpenAI a zveřejnění bylo koordinované.
U PHP2Shell rozhoduje, jestli někdo ví, na jaké verzi PHP vaše aplikace běží, a jestli může server bezpečně aktualizovat a restartovat. Když to nikdo neví, ztrácí se čas, který se u kritických chyb počítá na hodiny.
1. Web IT z Prahy a Brna vyvíjí a dlouhodobě podporuje webové aplikace a e-shopy v PHP. V rámci podpory aplikace nebo správy serverů a infrastruktury s vámi zkontrolujeme verzi PHP a pomůžeme s aktualizací. Co má obsahovat dobře nastavená podpora, popisujeme v článku o SLA podpory aplikace. Pokud po původním dodavateli nikdo aplikaci nespravuje, pomůže článek o převzetí aplikace po jiném dodavateli.
Stará se o váš web kamarád „ze známosti“? Spousta firemních webů a aplikací běží díky ochotnému kamarádovi, bývalému kolegovi nebo někomu, kdo to „umí s počítači“. Je to normální, jen se pak často stane, že se na server dlouho nesáhne. Pokud je to i váš případ, napište nám. Společně se podíváme, na jaké verzi PHP web běží a jestli je všechno aktuální.
PHP2Shell je označení dvou kritických chyb v jazyce PHP, CVE-2026-109618 a CVE-2026-109619, zveřejněných 21. 10. 2026. Mohou útočníkovi umožnit spustit na serveru vlastní kód. PHP je hodnotí skórem 9,2 podle CVSS 4.0.
Oficiálně se týká větví 8.2 až 8.5. Opravené verze jsou 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Pro PHP 8.1 a starší oficiální vydání nevyšlo. PHP pro ně vydalo jen minimální zdrojové opravy, hotové balíčky nabízejí některé distribuce.
Nejrychleji v administraci hostingu, u WordPressu v sekci Nástroje, Stav webu, Informace. Na serveru pomůže dočasný soubor s phpinfo() nebo příkaz pro PHP-FPM. Soubor composer.json skutečnou verzi neukazuje.
Ano. Chyba je v PHP, ne ve WordPressu, takže se týká každého webu, který běží na zasažené verzi PHP. Aktualizace WordPressu ani pluginů ji neopraví, je potřeba aktualizovat PHP na serveru.
Tyto verze už nemají oficiální podporu a opravné vydání pro ně nevyšlo. PHP pro ně vydalo jen minimální opravy ve zdrojovém kódu, hotové balíčky nabízejí některé distribuce, například Ubuntu, nebo dodavatelé dlouhodobé podpory. Dlouhodobě je potřeba naplánovat přechod na podporovanou verzi PHP.
Nevíte jistě, jakou verzi PHP váš web používá, nebo aktualizace narazila na problém? Napište nám. Projdeme s vámi server, verzi PHP a postup aktualizace.