Aktuální situace: PHP2Shell. Dvě kritické zranitelnosti PHP (CVSS 9.2) umožňují spustit škodlivý kód bez přihlášení. Záplaty od 21. 10. 2026.Co nyní udělat →

Bezpečnost Craft CMS po PHP2Shell: jak zabezpečit weby agentur

Craft CMS běží na PHP a agentury ho často nasazují u mnoha zákaznických webů. Po PHP2Shell se počítá záplata, restart, chráněný Security Key a porovnání Project Config.

Stav 4 min čteníPlatformy

Stručně: Bezpečnost Craft CMS závisí po PHP2Shell na PHP serveru, ne na Craft. Zejména agentury s mnoha weby na Craft by nyní měly zkontrolovat každý server zvlášť. Po záplatě a restartu patří na zkoušku .env, Security Key, devMode, kořen dokumentů a porovnání Project Config.

Co PHP2Shell znamená pro weby na Craft

Craft CMS je u agentur oblíbené, protože nabízí flexibilní modely obsahu a čisté šablony. Mnoho agentur proto spravuje desítky webů na Craft na různých serverech a hostingových balíčcích. Zranitelnosti PHP CVE-2026-109618 a CVE-2026-109619 umožňují podle týmu PHP spuštění škodlivého kódu na dálku bez přihlášení, bez ohledu na verzi Craft.

Pro agentury je proto nejdůležitější otázka organizační: Který web běží kde, s jakým PHP a kdo odpovídá za aktualizaci? Seznam všech instalací s poskytovatelem hostingu, stavem PHP a kontaktní osobou je prvním krokem. Jak agentury v tom podporujeme, popisuje článek Bezpečnostní partner pro agentury.

Bezpečnost Craft CMS: kontrola verze PHP

V Control Panelu zobrazuje Nástroje > Systémová zpráva verzi PHP, databázi a nainstalované pluginy. To je verze, se kterou web běží na webu. Konzole Craft php craft, zpracování fronty a úlohy cron naopak používají PHP pro příkazovou řádku. Obě musí být záplatovány.

Opravené verze upstreamu jsou 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Mnoho poskytovatelů hostingu opravy nasazuje jako backport; číslo pak zůstane stejné. Které verze jsou postiženy, ukazuje článek Které verze PHP jsou postiženy?. Které verze PHP vaše verze Craft podporuje, ověříte podle systémových požadavků v dokumentaci na craftcms.com.

Craft zpracovává úlohy na pozadí ve frontě. Pokud běží jako trvalý proces pod správcem procesů, musí se po aktualizaci PHP restartovat i ten.

Adresáře a konfigurace v Craft

Místo Obsah Bod kontroly
.env Přístup k databázi, CRAFT_SECURITY_KEY, další klíče Hodnoty při podezření obnovit
config/general.php devMode, allowAdminChanges, cesta k Control Panelu Vložený kód PHP
config/project/ Project Config jako YAML Porovnání s Git
web/ Kořen dokumentů s index.php, cpresources/, často nahrávky Další soubory PHP
storage/ Logy, soubory za běhu, často zálohy databáze Nesmí být dostupné přes web
templates/ Šablony Twig Cizí JavaScript
modules/, vendor/ Vlastní moduly a pluginy Změněné soubory, composer audit

Často přehlížený bod je storage/backups/. Craft tam ukládá zálohy databáze, které mohou obsahovat úplná data zákazníků a formulářů. Tato složka nikdy nesmí ležet pod kořenem dokumentů.

Neškodné kontroly na příkazové řádce:

# Zobrazit rozdíly mezi Project Config a databází
php craft project-config/diff
# Soubory PHP v kořenu dokumentů kromě index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
Důležité

V produkci patří devMode na false. Se zapnutým devMode zobrazuje Craft podrobná chybová hlášení s cestami a ukázkami kódu, která útočníkům usnadňují práci.

Control Panel, uživatelé a pluginy

Control Panel leží standardně na adrese /admin. Zkontrolujte, kteří uživatelé mají práva administrátora, a odstraňte přístupy bývalých zaměstnanců a freelancerů. Craft podporuje dvoufázové přihlášení; používejte je pro všechny účty se zvýšenými právy.

V produkci nastavte allowAdminChanges na false. Pak lze pole, sekce a nastavení pluginů měnit jen přes verzovanou Project Config a každá odchylka se při porovnání s Git projeví. Pluginy z Plugin Store přinášejí vlastní kód PHP; ověřte, zda se všechny ještě udržují a odpovídají cílové verzi PHP.

// config/general.php, výřez pro produkční prostředí
'devMode' => false,
'allowAdminChanges' => false,

Co aktualizace Craft zvládne a co ne

Aktualizace Craft nebo pluginu uzavře chyby v tomto kódu a může umožnit novější verze PHP. Nezáplatuje PHP, nerestartuje ani PHP-FPM, ani frontu, neobnoví uniklý Security Key a neodstraní cizí soubory z web/ nebo storage/.

Pro agentury s mnoha instalacemi Craft po záplatě záleží především na opakovatelnosti. U každého webu si zaznamenejte, jaká verze PHP běží na webu a na příkazové řádce, kdy byl potvrzen restart a zda byly kontroly nápadné. Tento přehled pomáhá při dotazech zákazníků a při budoucích hlášeních. Myslete také na veřejně dostupná stagingová a vývojová prostředí. Často běží s devMode, staršími stavy a skutečnými daty zákazníků a při aktualizacích se rády zapomínají. Pokud je pochybnost, zda je web zákazníka postižen, informujte zákazníka věcně, místo abyste vyčkávali.

Jak konkrétně pomáhá PHP SOS?

  • Spolu s vámi zachytíme všechny instalace Craft s poskytovatelem hostingu, stavem PHP a odpovědností.
  • Necháme si potvrdit záplatu a restart na každém serveru a zálohujeme logy od 20. 10. 2026.
  • Kontrolujeme kořen dokumentů, storage, konfiguraci, uživatele a porovnání Project Config.
  • Na přání převezmeme průběžnou bezpečnostní péči o weby vašich zákazníků v rámci bezpečnostní servisní smlouvy, i pod vaším jménem.

Časté dotazy

Týká se PHP2Shell Craft CMS?

Craft CMS samo žádnou novou zranitelnost nemá. Běží ale na PHP a PHP2Shell je v PHP. Každá instalace Craft na nezáplatovaném serveru je proto potenciálně napadnutelná, bez ohledu na verzi Craft.

Kde Craft zobrazuje verzi PHP?

V Control Panelu v nabídce Nástroje > Systémová zpráva. Najdete tam verzi PHP, databázi a nainstalované pluginy. Nasazený backport z čísla nepoznáte; potvrdí jej váš poskytovatel hostingu.

Co je Security Key v Craft a proč jej obnovit?

Security Key ze souboru .env slouží k podepisování a šifrování dat. Kdo jej zná, může za určitých okolností falšovat relace nebo data formulářů. Po podezření byste jej měli po dohodě se svou agenturou obnovit.

Co přinese allowAdminChanges nastavené na false?

Pole, sekce a nastavení pluginů se v produkci už nedají měnit přes Control Panel. Změny přicházejí jen přes verzovanou Project Config, což manipulace ztěžuje a činí viditelnějšími.

Zdroje

Okamžitý kontakt

Každá hodina se počítá. Napište nám hned.

Stručně popište systém, verzi PHP a pozorování. Ozveme se, vyjasníme situaci a budeme pracovat na dálku, dokud nebude incident uzavřen a zdokumentován.

Okamžitá pomoc