21. října 2026, Luboš Zápotočný
PHP2Shell: které verze PHP jsou bezpečné a co dělat nyní
Dvě kritické zranitelnosti PHP, CVE-2026-109618 a CVE-2026-109619, opravují verze PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Koho se týkají, které verze jsou bezpečné, co zkontrolovat na serverech a co dělat, pokud stále provozujete PHP 8.1 nebo starší.
Dne 21. října 2026 vydal projekt PHP verze PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35, které opravují dvě kritické zranitelnosti, CVE-2026-109618 a CVE-2026-109619. Obě umožňují útočníkovi spustit kód na webovém serveru bez přihlášení. Dvojice je všeobecně známa jako PHP2Shell, podle názvu nástroje pro zneužití, který výzkumníci z obou chyb sestavili (shrnutí od Sansecu). Bezpečnostní upozornění PHP uvádí, že „úplným řešením je pouze aktualizace“.
Všechny níže uvedené údaje o dodavatelích jsme ověřili v odkazovaných zdrojích dne 21. října 2026.
Dotčené systémy
Podle oznámení PHP se riziko týká „všech instalací PHP, které obsluhují webové requesty“, bez ohledu na to, jakým způsobem je PHP připojeno k webovému serveru. Patří sem aplikace Magento, Mage-OS, WordPress, Drupal, Laravel a Symfony i jakýkoli vlastní kód v PHP. Sansec uvádí, že výzkumníci spustili kód bez přihlášení na Magentu 2.4.9, WordPressu, Drupalu, Nextcloudu a dalších aplikacích. PHP zpracuje request útočníka dříve, než se k němu aplikace dostane, takže vlastní kód obchodu ani jeho rozšíření útok zablokovat nemohou.
Druhá zranitelnost může navíc prozradit obsah paměti serveru. Server, na kterém běžela zranitelná verze a který byl dostupný z internetu, mohl vyzradit hesla, klíče API nebo data relací. Po aktualizaci zvažte změnu přístupových údajů, které server používá.
Obchodníci na Shopify nemají vlastní instalaci PHP, kterou by museli aktualizovat, protože platformu hostuje Shopify (FAQ Shopify). Vlastní aplikace napsané v PHP a hostované na vašich serverech jsou zasaženy stejně jako jakýkoli jiný kód v PHP.
Bezpečné verze
| Větev | Bezpečná od | Konec bezpečnostní podpory |
|---|---|---|
| 8.5 | 8.5.12 | 31. prosince 2029 |
| 8.4 | 8.4.27 | 31. prosince 2028 |
| 8.3 | 8.3.36 | 31. prosince 2027 |
| 8.2 | 8.2.35 | 31. prosince 2026 |
| 8.1 a starší | projekt PHP opravu nevydal | skončila |
Termíny konce podpory pocházejí ze stránky podporovaných verzí PHP. Systém na PHP 8.2 je třeba aktualizovat ihned a do konce roku jej převést na novější větev, pokud nepoužívá vlastní balíčky PHP Debianu 12, které udržuje tým dlouhodobé podpory Debianu (DLA-4848-1).
Kontrola serverů
Instalace aktualizace bývá rychlá. Hlavní riziko spočívá v tom, že se mylně předpokládá, že proběhla. Tyto otázky položte tomu, kdo vaše servery spravuje:
- Kterou verzi PHP webový server skutečně používá? Může se lišit od verze zobrazené na příkazovém řádku a na jednom serveru může běžet několik verzí PHP vedle sebe.
- Dokládá číslo verze, že oprava je nainstalována? Například Ubuntu přidává opravu do svého staršího balíčku PHP, takže opravený server s Ubuntu 24.04 stále hlásí PHP 8.3.6 (upozornění Ubuntu). V takovém případě musí s upozorněním dodavatele souhlasit verze balíčku.
- Byl po aktualizaci PHP restartován? Běžící proces PHP uchovává starý kód v paměti, dokud není restartován.
- Byly znovu sestaveny obrazy Dockeru? Běžící kontejner se sám neaktualizuje. Oficiální obrazy PHP na Docker Hubu byly s opravenými verzemi znovu sestaveny později 21. října, takže obraz sestavený z nich před tímto okamžikem stále obsahuje zranitelnou verzi.
- Postará se o to poskytovatel hostingu? U služby Adobe Commerce on Cloud společnost Adobe na stránce nastavení PHP neuvádí, kdy se aktualizuje opravné vydání PHP, a dne 21. října jsme nenašli žádné oznámení Adobe k těmto zranitelnostem. Po příštím nasazení zkontrolujte verzi, a pokud je stále nižší než bezpečné vydání, obraťte se na podporu Adobe.
Obchody na starších verzích Magenta
Podle systémových požadavků Adobe může obchod na Magentu používat jen určité verze PHP. Obchody na verzích 2.4.8 a 2.4.9 mohou na bezpečné vydání přejít ještě dnes. Obchod na verzi 2.4.7 může používat PHP 8.3, což je vhodnější volba než 8.2.
Nejnovější patche řad 2.4.4 a 2.4.5 podporují pouze PHP 8.1, které už od projektu PHP nedostává opravy, a těmto řadám již skončila bezpečnostní podpora Adobe (zásady životního cyklu). Takový obchod je až do dokončení upgradu Magenta odkázán na opravu od dodavatele operačního systému (viz další oddíl).
PHP 8.1 a starší
Projekt PHP již verze 8.1 a starší nevydává. Pro verze 8.1, 8.0 a 7.4 zveřejnil minimální opravy ve formě zdrojového kódu a odkazuje uživatele na jejich dodavatele. Někteří dodavatelé je již vydali:
- Ubuntu opravilo PHP 8.1 na Ubuntu 22.04 v rámci běžných aktualizací (USN-8948-1) a starší verze PHP na starších vydáních Ubuntu pro zákazníky Ubuntu Pro (USN-8948-2).
- Repozitáře Ondřeje Surého, běžný zdroj PHP na Debianu a Ubuntu, zveřejnily opravená sestavení PHP 5.6 až 8.1 (PPA).
- Red Hat opravil balíčky PHP 7.4 v RHEL 8, pro ostatní verze PHP v RHEL 8, 9 a 10 opravu dosud nevydal (data Red Hatu).
Projekt PHP tyto opravy označuje jako „minimální zmírnění pro verzi po skončení podpory“ („Minimal mitigation for EOL version“). Uzavírají známé vektory útoku u verze, která žádné jiné bezpečnostní opravy nedostává. Upgrade na podporovanou verzi PHP je přesto nutný.
Dočasná opatření do aktualizace
PHP uvádí změny konfigurace, které riziko snižují, a dodává, že „omezují konkrétní vektory útoku, ale instalaci bezpečnou nečiní“. Patří mezi ně vypnutí sledování průběhu nahrávání v relaci (session upload progress) a snížení maximální velikosti requestu. Úplný seznam je v oznámení PHP. Cloudflare také nasadil pravidla firewallu proti těmto zranitelnostem. Obojí snižuje riziko do doby, než bude aktualizace nainstalována.
Jako dočasné opatření se někdy doporučuje blokovat multipart requesty, tedy formát, který prohlížeče používají k nahrávání souborů. V obchodě na Magentu to podle analýzy Sansecu zablokuje také nahrávání obrázků produktů v Adminu a v některých obchodech i košík nebo checkout. Po každé takové změně proveďte testovací objednávku.
Stav zneužívání
Cloudflare uvádí, že podrobnosti unikly ještě před vydáním a že „zaznamenal útočný provoz zaměřený na naše zákazníky“ (příspěvek Cloudflare). Při naší kontrole dne 21. října nebyla ani jedna z těchto CVE uvedena v katalogu Known Exploited Vulnerabilities agentury CISA.
Pokud si nejste jisti, kterou verzi PHP vaše servery používají, nebo zda byla aktualizace nainstalována na všech, můžeme je zkontrolovat a aktualizovat za vás. Udržování aktuálního běhového prostředí PHP je součástí naší průběžné péče. Pokud potřebujete jednorázovou aktualizaci, napište nám.