Текуща ситуация: PHP2Shell. Две критични уязвимости в PHP (CVSS 9,2) позволяват злонамерен код без вход. Корекции от 21.10.2026 г.Какво да направите сега →

Сигурност на Craft CMS след PHP2Shell: как да защитите уебсайтове на агенции

Craft CMS работи на PHP и често се ползва от агенции с много клиентски сайтове. След PHP2Shell значение имат пачът, рестартирането, защитен Security Key и сравнението на Project Config.

Актуалност 4 мин. четенеПлатформи

Накратко: Сигурността на 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, което прави манипулациите по-трудни и по-видими.

Източници

Незабавен контакт

Всеки час има значение. Пишете ни сега.

Опишете накратко системата, версията на PHP и какво сте забелязали. Ние се свързваме с Вас, уточняваме ситуацията и работим отдалечено, докато инцидентът бъде приключен и документиран.

Незабавна помощ