Klubovna/22.10.2026

Aut. Chyba v PHP, která může e‑shop stát sezónu

Jádro PHP dostalo 21.10.2026 dvě kritické opravy. Chyba není v Prestashopu, přesto se vašeho e‑shopu týká. Jak zjistit, na čem běží, a co chtít od hostingu.

Dvě kritické chyby přímo v jádře PHP, zveřejněné 21.10.2026. Označení CVE‑2026‑109618 a CVE‑2026‑109619, přezdívka php2shell, skóre 9,2 z 10. Jestli váš e‑shop běží na Prestashopu, běží na PHP. Týká se vás to.

Co se stalo 21.10.2026

Útok jde po síti, bez přihlášení a bez jakékoli interakce uživatele. Zneužití není triviální, složitost je vysoká a vyžaduje určité podmínky. Vzdálené spuštění kódu už ale bylo předvedeno proti mod_php, takže nejde o teorii.

Národní úřad pro kybernetickou a informační bezpečnost vydal varování tentýž den a napsal to bez obalu. Jediným řešením je aktualizace. Dodává, že veřejně dostupné jsou i informace umožňující zneužití, a radí sledovat neobvyklé procesy spouštěné PHP.

Chyba není v Prestashopu, chyba je v PHP

Zranitelnost neleží v Prestashopu ani v žádném modulu. Je v samotném PHP, tedy v jazyce, ve kterém je Prestashop napsaný. Vývojáři Prestashopu to napsali výslovně a dodali zásadní větu. Aktualizace e‑shopu ani modulů chybu neopraví, protože útok může proběhnout dřív, než se kód aplikace vůbec spustí.

Prestashop je v téhle hře hráč, PHP je hřiště. Trhlinu ve hřišti nespraví ani ten nejlepší hráč. Opravit se musí hřiště a to má v rukou hosting.

Jak zjistíte, na jakém PHP e‑shop běží

V administraci Prestashopu otevřete Pokročilé parametry a zvolte Informace. Verze PHP je hned v přehledu serveru. Zabere to patnáct vteřin a bez toho čísla nemá smysl psát hostingu.

Opravené verze a proč číslo verze nic nedokazuje

Opravené verze vyšly 21.10.2026.

Verze PHPStav
8.5opraveno v 8.5.12
8.4opraveno v 8.4.27
8.3opraveno v 8.3.36
8.2opraveno v 8.2.35, podpora končí 31.12.2026
8.1 a staršíběžné aktualizace od projektu PHP nedostává

Pozor: Číslo verze samo nic nedokazuje. Distribuce a hostingy opravy backportují bez změny čísla, takže 8.2.x může být opravená i zranitelná. Rozhoduje jedině potvrzení hostingu, že má opravu pro obě CVE.

Co chtít od hostingu

Dotaz formuluji vždycky takhle. Máte na mém hostingu nasazenou opravu pro CVE‑2026‑109618 a CVE‑2026‑109619 a byly po ní restartovány všechny PHP procesy? Ptát se „máte aktuální PHP“ nemá cenu, na to odpoví každý ano.

Kdo si server spravuje sám, s nainstalovaným balíčkem ještě není hotový. Restartovat se musí všechny PHP procesy, tedy PHP‑FPM, Apache, LiteSpeed i FrankenPHP. Dokud se nerestartují, běží dál starý zranitelný kód. U Dockeru se image musí přestavět.

Co dělat, dokud opravené PHP nedoběhne

Pomohou dočasná opatření. Snížení post_max_size, vypnutí session.upload_progress, u PHP 8.5 nastavení fatal_error_backtraces na nulu a WAF před webem. Vývojáři PHP i Prestashopu ale shodně říkají, že úplné řešení to není. Jedna věc se naopak nasadit nesmí. RLIMIT_AS a RLIMIT_DATA můžou zranitelnou cestu samy vyvolat.

Po zásahu do nastavení PHP vyčistěte cache e‑shopu, ať pracujete s čerstvým stavem. A dívejte se po podivnostech, tedy po neznámých souborech v adresáři e‑shopu a po procesech PHP, které tam nemají co dělat.

Starší větve a termín, který už znáte

PHP 8.1 a starší už od projektu PHP běžné aktualizace nedostávají. Pro 7.4, 8.0 a 8.1 vývojáři zveřejnili jen minimální backporty ve zdrojovém kódu. Jestli opravu reálně máte, rozhoduje vaše distribuce nebo hosting. Národní úřad se k verzím bez podpory nevyjadřuje vůbec.

Postup je stejný, výsledek bývá jiný. Když hosting opravu pro vaši verzi nemá, přechod na podporovanou verzi PHP se právě přesunul ze seznamu přání na tento týden. U starších e‑shopů k němu patří i povýšení Prestashopu, aby na novém PHP běžel celý obchod včetně modulů.

Konec podpory PHP 8.2 přijde 31.12.2026. Kdo na ní zůstane, bude za dva měsíce řešit totéž znovu.

Tři věty, které kolují a neplatí

„Mám skryté chybové výpisy, takže jsem krytý.“ Nejste. display_errors ani error_reporting před tímhle útokem nechrání.

„Mám aktuální Prestashop a všechny moduly.“ Nepomůže to. Chyba leží pod aplikací, mimo dosah jakékoli aktualizace e‑shopu.

„Mám 8.2, to je podporovaná verze.“ Samo o sobě to nic neznamená. Rozhoduje konkrétní build u hostingu a restart po něm.

Co si odnést

Verze PHP není technický detail někde v pozadí. Je to podmínka hry, kterou e‑shop hraje každý den.

Z 21.10.2026 si odnáším dvě věci. Vědět, na čem e‑shop stojí, a mít hosting, který na takovou zprávu reaguje v hodinách, ne v týdnech. To druhé se nepozná v klidné sezóně. Pozná se přesně ve dni, jako byl ten včerejší.

„Sledujte konkurenci. Nekopírujte, inspirujte se.“

Filip Farník

Zpět do Klubovny