PHP2Shell: zranitelnost PHP, která ohrožuje váš PrestaShop e-shop

Váš e-shop · 6 min čtení · Aktualizováno 21/10/2026

PHP2Shell: zranitelnost PHP, která ohrožuje váš PrestaShop e-shop

20. října se objevilo varování, které uvedlo do napětí půlku internetu: dvě vážné zranitelnosti v PHP, jazyku, na kterém běží váš e-shop na PrestaShopu, dovolují cizímu člověku převzít kontrolu nad serverem bez jména a hesla. Říká se jim PHP2Shell. PHP vydalo opravu 21. října a co máte udělat, záleží na jediné věci: na verzi PHP, na které váš e-shop běží.

Vysvětlíme vám to bez žargonu: co se stalo, jak zjistit, jestli se vás to týká, co udělat ještě dnes a co dělat, když je váš e-shop na verzi, která opravu nedostává.

Co je PHP2Shell a proč je tak vážný?

PHP je motor, na kterém stojí PrestaShop, WordPress, Magento a většina e-shopů a webů na světě. Obě zranitelnosti, vedené jako CVE-2026-109618 a CVE-2026-109619, mají hodnocení závažnosti 9,2 z 10. V praxi to znamená, že kdo je umí zneužít, může na vašem serveru spustit cokoli: nechat tam zadní vrátka, ukrást data vašich zákazníků nebo do e-shopu podstrčit falešnou captchu, jako je ClickFix.

Od jiných varování se liší tím, že útok nevede přes PrestaShop ani přes žádný modul. Odehraje se v PHP, ještě než váš e-shop návštěvu vůbec přečte. Je jedno, jak dobře se o něj staráte: pokud je PHP na serveru zranitelné, je zranitelný i e-shop.

A informace unikly s předstihem. Bezpečnostní firma Sansec uvádí, že spolu s varováním se objevil snímek už hotového útočného nástroje, a očekávala hromadné útoky hned po zveřejnění opravy. Podle stejného zdroje Cloudflare už zaznamenal první pokusy a nasadil pravidla, která je mají zastavit.

Týká se to mého e-shopu na PrestaShopu?

Nejspíš ano. PHP ve svém bezpečnostním upozornění považuje za ohroženou každou instalaci, která obsluhuje webové stránky, ať ji server spouští jakkoli, a nejvyšší riziko vidí u serverů Apache s mod_php, kde už existuje předvedený útok, který funguje bez jména a hesla. Sansec mluví o každém serveru s PHP 5.4 nebo novějším, což je v praxi každý e-shop na PrestaShopu, který dnes běží.

Otázka, na které opravdu záleží, je jiná: dostanete opravu? PHP zranitelnost opravilo ve verzích 8.2.35, 8.3.36, 8.4.27 a 8.5.12. PHP 8.1 a starší už oficiální aktualizace nedostávají: pro 7.4, 8.0 a 8.1 PHP zveřejnilo minimální opravu, kterou je potřeba ručně zkompilovat, a někteří poskytovatelé prodloužené podpory ji zařazují do svých balíčků. A každá verze PrestaShopu funguje jen s určitými verzemi PHP:

  • PrestaShop 1.6: funguje s PHP 5.6 až 7.1. Bez opravy.
  • PrestaShop 1.7: nejvýš PHP 7.4. Bez oficiální aktualizace; jen na 7.4 jde nasadit minimální opravu zkompilovanou ručně.
  • PrestaShop 8: nejvýš PHP 8.1. Bez oficiální aktualizace; minimální opravu pro 8.1 je také potřeba zkompilovat ručně.
  • PrestaShop 9: funguje s PHP 8.1 až 8.4. S PHP 8.2 nebo novějším aktualizaci dostane; pokud je na 8.1, stačí povýšit PHP.

Jinak řečeno: pokud váš e-shop není na PrestaShopu 9, žádná oficiální aktualizace k instalaci neexistuje, protože vaše verze PrestaShopu nedokáže běžet na PHP, které ji má. Zbývá minimální oprava, což je práce pro technika a před další dírou vás stejně neochrání.

Jak zjistit, jakou verzi máte

Přihlaste se do administrace e-shopu a otevřete Nástroje → Informace. Uvidíte tam verzi PrestaShopu a o kousek níž verzi PHP. S těmi dvěma čísly už víte, do které skupiny patříte.

Co udělat ještě dnes a v jakém pořadí

  1. Zjistěte obě verze, PrestaShopu i PHP, jak jsme popsali výše.
  2. Udělejte úplnou zálohu, souborů i databáze, a uložte ji mimo server. Když se něco stane, je to jediné, co vám dovolí vrátit se zpět.
  3. Pokud je váš e-shop na PrestaShopu 9, požádejte hosting, ať aktualizuje PHP na verzi 8.2.35, 8.3.36, 8.4.27 nebo 8.5.12 či novější, nebo to udělejte sami v administraci hostingu, pokud vám dovolí verzi vybrat. Pokud jste na PHP 8.1, využijte příležitost a přejděte na 8.3 nebo 8.4.
  4. Pokud používáte Cloudflare, zkontrolujte, že je obláček u vaší domény oranžový: provoz tak projde jeho pravidly dřív, než se dostane k vašemu serveru. Moc to ale nepomůže, pokud je adresa vašeho serveru známá a přijímá návštěvy odkudkoli, takže požádejte svého technika, ať ho otevře jen pro Cloudflare.
  5. Pokud je váš e-shop na verzi 1.6, 1.7 nebo 8, zeptejte se hostingu, jestli opravu pro vaši verzi PHP nasazuje, požádejte svého technika o nouzová opatření, která popisujeme níže, a stanovte si termín přechodu na PrestaShop 9. Je to jediný způsob, jak mít znovu PHP, které dostává záplaty.

Přepnutí e-shopu do režimu údržby v administraci vás tentokrát neochrání: PHP návštěvu přečte dřív, než PrestaShop rozhodne, že ukáže stránku údržby.

A co když můj e-shop opravu dostat nemůže?

PHP navrhuje několik nastavení serveru, která některé cesty útoku uzavřou, a upozorňuje, že e-shop bezpečným neudělají: to dokáže jen aktualizace. Sansec přidává další nouzové opatření: zablokovat na serveru typ odesílání, kterým putují soubory nahrávané na web. Má to svou cenu: dokud platí, nikdo nemůže do vašeho e-shopu nahrávat soubory. Vy ne fotky nového produktu a vaši zákazníci ne přílohu v kontaktním formuláři. E-shop přitom dál normálně prodává.

Slouží k tomu, abyste získali pár dní, ne abyste to tak nechali. Až se v PHP objeví další díra – a objeví se –, bude váš e-shop ve stejné situaci, protože PHP 8.1 a starší už nedostávají aktualizace.

Vyplatí se teď přejít na novější PrestaShop?

Je to otázka, která se pořád odkládá, protože e-shop funguje. PHP2Shell je přesně to, co se stane, když se odkládá příliš dlouho: den, kdy problém přijde, si nevybíráte vy, a oprava není ve vašich rukou.

Přechod na PrestaShop 9 vás dostane na PHP, které bude dostávat záplaty ještě roky. Dělá se bez zavření e-shopu, ponecháte si produkty, zákazníky, objednávky i pozice v Googlu a u malého e-shopu stojí od 690 €. Celé to popisujeme v článku přechod z PrestaShopu 1.7 nebo 1.6 na 9 a na naší stránce o migraci PrestaShopu 1.6 a 1.7 na 9.

A pokud nechcete taková varování hlídat sami, přesně to pokrývá údržba PrestaShopu: někdo, kdo za vás aktualizuje PHP, PrestaShop i moduly a dá vám vědět dřív, než se problém k vašemu e-shopu dostane.

Pro váš technický tým

Opravené verze: 8.2.35, 8.3.36, 8.4.27 a 8.5.12. Pro 7.4, 8.0 a 8.1 PHP zveřejňuje větve s minimální opravou ve zdrojovém kódu, odkázané z jeho upozornění; nejde o oficiální verze. Dílčí opatření, která PHP uvádí, v php.ini, v poolu PHP-FPM (php_admin_value) nebo v konfiguraci serveru, nikdy přes ini_set() ani .user.ini, a s restartem všech procesů:

; CVE-2026-109618
memory_limit = -1
post_max_size = 32M   ; 8M, pokud se nenahrávají soubory
; CVE-2026-109619
session.upload_progress.enabled = 0
; pouze v PHP 8.5
fatal_error_backtraces = 0

PHP žádá, aby se memory_limit nenahrazoval systémovými limity (RLIMIT_AS, RLIMIT_DATA). Opatření Sansecu, blokování multipart/form-data (rozbije veškeré nahrávání souborů, včetně administrace), v Apache:

RewriteEngine On
RewriteCond %{HTTP:Content-Type} multipart/form-data [NC]
RewriteRule ^ - [F]

V Nginxu:

if ($http_content_type ~* "multipart/form-data") {
    return 403;
}

U balíčků z repozitáře Remi (běžné na RHEL, AlmaLinuxu nebo Rocky) Sansec upozorňoval, že aktualizace nepřišla týž den: nainstalovanou verzi ověřte přes php -v. S Cloudflare omezte port 443 originu na jeho rozsahy IP; jinak útok dorazí přímo na IP serveru.

Potřebujete pomoc ještě dnes?

Pokud nevíte, do které skupiny patříte, pokud vám hosting neodpovídá nebo pokud je váš e-shop na verzi 1.6, 1.7 nebo 8 a chcete se z ní dostat, napište nám svou verzi PrestaShopu a PHP. Řekneme vám, co udělat ještě dnes, a pokud bude potřeba, dáme vám pevnou cenu za přechod na PrestaShop 9.

Chci povýšit svůj e-shop

S čím vám můžeme pomoci

Zobrazit všechny služby →

Číst dál

Pomůžeme vám s vaším projektem? Pojďme si promluvit

Řekněte nám, co vaše firma potřebuje

Modul, aplikace, server, který vám dělá potíže, nebo něco naléhavého. Odpovíme do 24 hodin s pevnou nabídkou, cenou a termínem.