PHP2Shell: opravy i pro starý ZenCart na PHP 5.2

Útočník nemusí znát heslo. PHP2Shell mu za určitých podmínek může umožnit spustit vlastní kód přímo na serveru. Když se tato hrozba objevila, nestačilo aktualizovat WordPress nebo e‑shop: opravu potřebovalo samotné PHP. U Zserveru jsme nezůstali jen u nových verzí. Připravili jsme ji i pro starší prostředí včetně PHP 5.2.

Výsledek v kostce

  • Od PHP 5.2 výše: zahrnuli jsme všechny větve PHP, které zákazníkům nabízíme.
  • Nejen instalace aktualizací: pro starší prostředí jsme připravili a zkompilovali vlastní sestavení.
  • Oprava i funkční e‑shop: provedli jsme cílené bezpečnostní testy a ověřili běžný provoz aplikací.

Starý ZenCart nemusíte narychlo nahrazovat

E‑shop má za sebou roky provozu, vlastní úpravy a stálé zákazníky. Tyto staré instalace ZenCartu na PHP 5.2 nejsou s novějším PHP kompatibilní. Pouhé přepnutí verze je vyřadí z provozu. Přesto nelze novou bezpečnostní hrozbu ignorovat.

U nás může dál běžet i starší ZenCart na PHP 5.2, pro které jsme připravili cílené opravy a opatření proti PHP2Shell. Zákazníci tak kvůli tomuto zásahu nemuseli okamžitě přestavovat celý obchod. Právě to je jedna z výhod našeho hostingu pro ZenCart: řešíme i prostředí, pro které už běžná aktualizace nemusí být dostupná.

Máte podobný e‑shop jinde? Napište nám, co používáte. Prověříme, jak ho u nás provozovat a co bude potřeba při převodu otestovat.

Nejdřív omezit riziko, potom opravit PHP

Reagovali jsme ihned po zveřejnění informací o PHP2Shell. Začali jsme prověřovat možnosti ochrany. Jakmile se objevila možnost omezit útok blokováním nahrávání souborů přes PHP, zavedli jsme toto opatření plošně na všech námi spravovaných serverech i na našem hostingu. Byl to dočasný krok ke snížení rizika, nikoli náhrada bezpečnostních oprav.

Jakmile vyšly opravy, obratem jsme je nasadili tam, kde byly dostupné použitelné balíčky. Pro ostatní prostředí jsme začali opravy zapracovávat přímo do zdrojových kódů PHP a kompilovat vlastní sestavení. Postupně jsme tak pokryli všechny používané verze od PHP 5.2 výše. U starších větví bylo navíc potřeba sladit opravené PHP s používanými knihovnami a rozšířeními.

Vlastní sestavení PHP a jeho ověření zabere víc času než instalace hotového balíčku. Pro přípravu oprav jsme proto vyčlenili samostatný server. Nové verze jsme tak mohli připravovat a testovat mimo běžný provoz zákaznických webů.

Pak přišly testy. V odděleném prostředí jsme ověřovali reakce na vyčerpání paměti a navazující požadavky, tedy situace související se známými postupy zneužití PHP2Shell. Vedle toho jsme kontrolovali databáze, nahrávání souborů, přihlášení a košíky. Nestačí, aby opravené PHP prošlo bezpečnostním testem. Weby a e‑shopy na něm musí dál fungovat stejně jako před opravou.

PHP 5.2 jsme připravili také v Docker kontejnerech. Nové prostředí jsme nejprve spustili vedle stávajícího, ověřili aplikace a teprve potom přepnuli provoz. Původní prostředí zůstalo připravené pro případný návrat. Po nasazení jsme kontrolovali i to, zda weby skutečně používají opravené PHP.

PHP2Shell označuje chyby CVE-2026-109618 a CVE-2026-109619 zveřejněné 21. října 2026. Podrobnosti najdete v oznámení projektu PHP a u autorů výzkumu PHP2Shell. Tato studie popisuje naši reakci na hrozbu, nikoli obnovu po prokázaném útoku na zákazníky.

Cílené opravy proti PHP2Shell nenahrazují údržbu samotného e‑shopu ani neobnovují oficiální podporu starého PHP. O případné modernizaci se ale dá rozhodovat podle stavu obchodu, ne pod tlakem okamžitého přesunu.

Potřebujete hosting se starší verzí PHP?

Provozujete ZenCart nebo jinou aplikaci, která potřebuje starší PHP? Pošlete nám adresu webu či e‑shopu a napište, co potřebujete zachovat. Posoudíme současný stav a navrhneme postup převodu nebo dalšího provozu.

Řešíte celý server? Podívejte se na managed VPS se správou serverového prostředí.

Podobné příspěvky