Aktuálna situácia: PHP2Shell. Dve kritické zraniteľnosti PHP (CVSS 9.2) umožňujú spustenie škodlivého kódu bez prihlásenia. Záplaty od 21. 10. 2026.Čo treba urobiť teraz →

Bezpečnosť Craft CMS po PHP2Shell: zabezpečiť weby agentúr

Craft CMS beží na PHP a často sa používa v agentúrach s mnohými zákazníckymi webmi. Po PHP2Shell sa počíta záplata, reštart, chránený Security-Key a porovnanie Project Config.

Stav 4 min čítaniaPlatformy

Stručne: Bezpečnosť Craft CMS závisí po PHP2Shell od PHP servera, nie od Craft. Práve agentúry s mnohými webmi na Craft by mali teraz skontrolovať každý server zvlášť. Po záplate a reštarte patria na previerku .env, Security-Key, devMode, koreň dokumentov a porovnanie Project Config.

Čo PHP2Shell znamená pre weby na Craft

Craft CMS je u agentúr obľúbený, pretože ponúka flexibilné modely obsahu a čisté šablóny. Mnohé agentúry preto spravujú desiatky webov na Craft na rôznych serveroch a hostingových balíkoch. Zraniteľnosti PHP CVE-2026-109618 a CVE-2026-109619 podľa tímu PHP umožňujú spustenie škodlivého kódu na diaľku bez prihlásenia, nezávisle od verzie Craft.

Pre agentúry je preto najdôležitejšia otázka organizačná: Ktorý web beží kde, s akým PHP a kto je zodpovedný za aktualizáciu? Prvým krokom je zoznam všetkých inštalácií s poskytovateľom hostingu, stavom PHP a kontaktnou osobou. Ako agentúram pri tom pomáhame, popisuje stránka Bezpečnostný partner pre agentúry.

Bezpečnosť Craft CMS: skontrolovať verziu PHP

V Control Panel zobrazuje Nástroje > Systémová správa verziu PHP, databázu a nainštalované pluginy. Je to verzia, s ktorou web beží na internete. Konzola Craft php craft, spracovanie frontu a cron úlohy používajú naopak PHP z príkazového riadku. Obe musia byť záplatované.

Opravené upstream verzie sú 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Mnohí poskytovatelia hostingu nasadzujú opravy ako backport; číslo potom zostane rovnaké. Ktoré verzie sú dotknuté, ukazuje stránka Ktoré verzie PHP sú dotknuté?. Ktoré verzie PHP vaša verzia Craft podporuje, skontrolujte podľa systémových požiadaviek v dokumentácii na craftcms.com.

Craft spracúva úlohy na pozadí vo fronte. Ak beží ako trvalý proces pod správcom procesov, musí sa po aktualizácii PHP reštartovať aj tento.

Adresáre a konfigurácia v Craft

Miesto Obsah Bod kontroly
.env Prístup k databáze, CRAFT_SECURITY_KEY, ďalšie kľúče Hodnoty pri podozrení obnoviť
config/general.php devMode, allowAdminChanges, cesta ku Control Panel Vložený kód PHP
config/project/ Project Config ako YAML Porovnanie s Git
web/ Koreň dokumentov s index.php, cpresources/, často nahrávky Ďalšie súbory PHP
storage/ Logy, súbory behu, často zálohy databázy Nesmie byť dostupné cez web
templates/ Šablóny Twig Cudzí JavaScript
modules/, vendor/ Vlastné moduly a pluginy Zmenené súbory, composer audit

Často prehliadaným bodom je storage/backups/. Craft tam ukladá zálohy databázy, ktoré môžu obsahovať úplné údaje zákazníkov a formulárov. Tento priečinok nikdy nesmie byť pod koreňom dokumentov.

Neškodné kontroly v príkazovom riadku:

# Zobraziť rozdiely medzi Project Config a databázou
php craft project-config/diff
# Súbory PHP v koreni dokumentov okrem index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
Dôležité

V produkcii patrí devMode na false. So zapnutým devMode zobrazuje Craft podrobné chybové hlásenia s cestami a úryvkami kódu, ktoré útočníkom uľahčujú prácu.

Control Panel, používatelia a pluginy

Control Panel je štandardne pod /admin. Skontrolujte, ktorí používatelia majú práva administrátora, a odstráňte prístupy bývalých zamestnancov a freelancerov. Craft podporuje dvojfaktorové prihlásenie; používajte ho pre všetky účty so zvýšenými právami.

V produkcii nastavte allowAdminChanges na false. Polia, sekcie a nastavenia pluginov sa potom dajú meniť iba cez verziovanú Project Config a každá odchýlka vyjde najavo pri porovnaní s Git. Pluginy z Plugin Store prinášajú vlastný kód PHP; skontrolujte, či sa všetky ešte udržiavajú a zodpovedajú cieľovej verzii PHP.

// config/general.php, výrez pre produkčné prostredie
'devMode' => false,
'allowAdminChanges' => false,

Čo aktualizácia Craft dokáže a čo nie

Aktualizácia Craft alebo pluginu uzatvára chyby v tomto kóde a môže umožniť novšie verzie PHP. PHP nezáplatuje, nereštartuje ani PHP-FPM, ani front úloh, neobnoví uniknutý Security-Key a neodstráni cudzie súbory z web/ ani storage/.

Pre agentúry s mnohými inštaláciami Craft sa po záplate počíta najmä opakovateľnosť. Pre každý web zaznamenajte, aká verzia PHP beží na webe a v príkazovom riadku, kedy sa potvrdil reštart a či boli kontroly nápadné. Tento prehľad pomáha pri otázkach zákazníkov a pri budúcich hláseniach. Myslite aj na verejne dostupné staging a vývojové prostredia. Často bežia s devMode, staršími stavmi a skutočnými údajmi zákazníkov a pri aktualizáciách sa radi zabúdajú. Ak existujú pochybnosti, či sa zákaznícky web týka, informujte zákazníka vecne, namiesto aby ste čakali.

Ako konkrétne pomáha PHP SOS?

  • S vami zaznamenáme všetky inštalácie Craft s poskytovateľom hostingu, stavom PHP a zodpovednosťou.
  • Necháme si potvrdiť záplatu a reštart pre každý server a zálohujeme logy od 20. 10. 2026.
  • Kontrolujeme koreň dokumentov, storage, konfiguráciu, používateľov a porovnanie Project Config.
  • Na požiadanie prevezmeme priebežnú bezpečnostnú starostlivosť o vaše zákaznícke weby v bezpečnostnej zmluve o údržbe, aj pod vaším menom.

Časté otázky

Týka sa PHP2Shell Craft CMS?

Samotné Craft CMS nemá novú zraniteľnosť. Beží však na PHP a PHP2Shell je v PHP. Každá inštalácia Craft na nezáplatovanom serveri je preto potenciálne napadnuteľná, bez ohľadu na verziu Craft.

Kde Craft zobrazuje verziu PHP?

V Control Panel pod Nástroje > Systémová správa. Nachádza sa tam verzia PHP, databáza a nainštalované pluginy. Nasadený backport sa z čísla nedá rozpoznať; potvrdí ho váš poskytovateľ hostingu.

Čo je Security-Key v Craft a prečo ho obnoviť?

Security-Key zo súboru .env slúži na podpisovanie a šifrovanie údajov. Kto ho pozná, môže za určitých okolností falšovať relácie alebo údaje formulárov. Pri podozrení by ste ho mali obnoviť v dohode so svojou agentúrou.

Čo prináša allowAdminChanges nastavené na false?

Polia, sekcie a nastavenia pluginov sa potom v produkcii už nedajú meniť cez Control Panel. Zmeny prichádzajú len cez verziovanú Project Config, čo manipulácie sťažuje a robí viditeľnejšími.

Zdroje

Okamžitý kontakt

Každá hodina sa počíta. Napíšte nám hneď.

Stručne opíšte systém, verziu PHP a svoje pozorovanie. Ozveme sa, vyjasníme situáciu a budeme pracovať na diaľku, kým nebude incident uzavretý a zdokumentovaný.

Okamžitá pomoc