Накратко: Сигурността на Craft CMS зависи след PHP2Shell от PHP на сървъра, а не от Craft. Особено агенциите с много уебсайтове на Craft трябва сега да проверят всеки сървър поотделно. След пача и рестартирането .env, Security Key, devMode, коренната директория и сравнението на Project Config трябва да се проверят.
Какво означава PHP2Shell за уебсайтове на Craft
Craft CMS е популярен сред агенциите, защото предлага гъвкави модели на съдържание и чисти шаблони. Съответно много агенции поддържат десетки уебсайтове на Craft на различни сървъри и хостинг пакети. PHP уязвимостите CVE-2026-109618 и CVE-2026-109619 позволяват според екипа на PHP изпълнение на злонамерен код от разстояние без вход в системата, независимо от версията на Craft.
За агенциите най-важният въпрос е затова организационен: кой уебсайт къде работи, с кой PHP и кой отговаря за актуализацията? Списък на всички инсталации с хостинг доставчик, състояние на PHP и лице за контакт е първата стъпка. Как подкрепяме агенциите при това, описва Партньор по сигурността за агенции.
Сигурност на Craft CMS: проверка на версията на PHP
В Control Panel Utilities > System Report показва версията на PHP, базата данни и инсталираните плъгини. Това е версията, с която уебсайтът работи в уеб. Конзолата на Craft php craft, обработката на опашката и cron задачите ползват обаче PHP за командния ред. И двата трябва да са пачнати.
Поправените версии на оригиналния проект са 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Много хостинг доставчици внасят корекциите като backport; номерът тогава остава същият. Кои версии са засегнати, показва страницата Кои версии на PHP са засегнати?. Кои версии на PHP поддържа Вашата версия на Craft, проверете според системните изисквания в документацията на craftcms.com.
Craft обработва фоновите задачи в опашка. Ако тя работи като постоянен процес под мениджър на процеси, и той трябва да се рестартира след актуализацията на PHP.
Директории и конфигурация в Craft
| Място | Съдържание | Какво да проверите |
|---|---|---|
.env |
достъп до базата данни, CRAFT_SECURITY_KEY, други ключове |
при подозрение подновете стойностите |
config/general.php |
devMode, allowAdminChanges, път до Control Panel |
вмъкнат PHP код |
config/project/ |
Project Config като YAML | сравнение с Git |
web/ |
коренна директория с index.php, cpresources/, често качвания |
допълнителни PHP файлове |
storage/ |
логове, файлове по време на изпълнение, често резервни копия на базата данни | не е достъпна през уеб |
templates/ |
Twig шаблони | чужд JavaScript |
modules/, vendor/ |
собствени модули и плъгини | променени файлове, composer audit |
Често пропускана точка е storage/backups/. Craft оставя там резервни копия на базата данни, които могат да съдържат пълни данни на клиенти и от формуляри. Тази папка никога не бива да е под коренната директория.
Безопасни проверки в командния ред:
# Показване на разликите между Project Config и базата данни
php craft project-config/diff
# PHP файлове в коренната директория освен index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
В продукция devMode трябва да е false. При включен devMode Craft показва подробни съобщения за грешки с пътища и откъси от код, които улесняват работата на нападателите.
Control Panel, потребители и плъгини
Control Panel е по подразбиране на /admin. Проверете кои потребители имат администраторски права и премахнете достъпите на бивши служители и свободни професионалисти. Craft поддържа двуфакторно удостоверяване; ползвайте го за всички акаунти с повишени права.
Задайте в продукция allowAdminChanges на false. Тогава полета, секции и настройки на плъгини могат да се променят само през версионираната Project Config и всяко отклонение се забелязва при сравнението с Git. Плъгините от Plugin Store носят собствен PHP код; проверете дали всички още се поддържат и подхождат на желаната версия на PHP.
// config/general.php, откъс за продукционната среда
'devMode' => false,
'allowAdminChanges' => false,
Какво може актуализацията на Craft и какво не
Актуализация на Craft или на плъгин затваря грешки в този код и може да позволи по-нови версии на PHP. Тя не пачва PHP, не рестартира нито PHP-FPM, нито опашката, не подновява изтекъл Security Key и не премахва чужди файлове от web/ или storage/.
За агенции с много инсталации на Craft след пача значение има най-вече повторяемостта. Записвайте за всеки уебсайт коя версия на PHP работи в уеб и в командния ред, кога е потвърдено рестартирането и дали проверките са били с нередности. Този преглед помага при запитвания от клиенти и при бъдещи съобщения. Мислете и за публично достъпните staging и development среди. Те често работят с devMode, по-стари състояния и реални данни на клиенти и лесно се забравят при актуализации. Ако има съмнение дали клиентски сайт е засегнат, информирайте клиента делово, вместо да изчаквате.
Как помага PHP SOS конкретно?
- Описваме с Вас всички инсталации на Craft с хостинг доставчик, състояние на PHP и отговорности.
- Получаваме потвърждение за пача и рестартирането за всеки сървър и запазваме логове от 20.10.2026 г. нататък.
- Проверяваме коренната директория,
storage, конфигурацията, потребителите и сравнението на Project Config. - При желание поемаме текущата грижа за сигурността на Вашите клиентски сайтове в договора за поддръжка на сигурността, и под Вашето име.
Често задавани въпроси
Засегнат ли е Craft CMS от PHP2Shell?
Самият Craft CMS няма нова уязвимост. Той обаче работи на PHP, а PHP2Shell е в PHP. Всяка инсталация на Craft на непачнат сървър е затова потенциално уязвима, независимо от версията на Craft.
Къде Craft показва версията на PHP?
В Control Panel под Utilities > System Report. Там стоят версията на PHP, базата данни и инсталираните плъгини. Внесен backport не се познава по номера; това потвърждава Вашият хостинг доставчик.
Какво е Security Key в Craft и защо да го подновя?
Security Key от файла .env служи за подписване и шифроване на данни. Който го познава, може при някои обстоятелства да фалшифицира сесии или данни от формуляри. При подозрение трябва да го подновите, съгласувано с Вашата агенция.
Какво носи allowAdminChanges със стойност false?
Така полета, секции и настройки на плъгини в продукция вече не могат да се променят през Control Panel. Промените идват само през версионираната Project Config, което прави манипулациите по-трудни и по-видими.