Почему владельцу MODX нужно проверить PHP сейчас

20 октября 2026 года команда PHP предупредила о двух критических уязвимостях, а 21 октября выпустила исправления. CVE-2026-109618 и CVE-2026-109619 допускают удалённое выполнение кода без авторизации. Это повод проверить серверный PHP даже у сайта, который открывается без ошибок.

Уязвимости находятся в PHP. Само наличие MODX не доказывает ни уязвимость конкретной установки, ни факт взлома. Сначала нужно установить, какая сборка обрабатывает запросы и применил ли поставщик исправления.

Какие выпуски содержат исправления

Для поддерживаемых веток выпущены PHP 8.2.35, 8.3.36, 8.4.27 и 8.5.12. Обновление внутри текущей ветки и переход на другую ветку — разные задачи: ради этих исправлений не каждому сайту нужен переход на самый новый PHP.

Поставщик дистрибутива или хостинг может перенести патч в свой пакет, сохранив прежний номер версии. Поэтому одного числа в панели недостаточно: запросите сведения об исправлении обеих CVE. Для PHP 8.1 и более старых веток уточните поддержку у поставщика или планируйте переход на поддерживаемую ветку.

Для MODX проверьте не только PHP в панели хостинга, но и запуск сниппетов, обработчиков форм и заданий cron. Сохраните сведения о пакете и результате проверки вместе с перечнем выполненных работ.

Почему обновления MODX недостаточно

Обновление Revolution или Extras не устанавливает патч в PHP на сервере. При этом после исправления PHP нужно убедиться, что с ним работают дополнения и собственный код сайта.

На MODX главная страница может открываться, а форма обратной связи — уже не отправляться. Страницу отдаёт кэш, а обработчик формы запускает PHP-код, который с новой версией не совместим. Поэтому открывшаяся главная ещё не подтверждает, что обновление прошло успешно.

До переключения нужно проверить три слоя: сам MODX Revolution, установленные дополнения Extras и код, написанный для сайта. В последнюю группу входят сниппеты, плагины, обработчики запросов и скрипты по расписанию. Ошибка может находиться в любом из них.

Сначала определите версию MODX и цель обновления

Запишите точную версию Revolution и текущую версию PHP. Затем сверьте требования нужного выпуска MODX с документацией и проверьте совместимость используемых дополнений. Требования одного выпуска нельзя переносить на всю ветку MODX. Наличие подходящего PHP у хостинга тоже не означает, что на нём заработает старый сниппет.

Обновление PHP и переход с MODX 2 на MODX 3 — разные изменения. В MODX 3 изменились части API и организация классов; дополнениям и собственному коду может понадобиться адаптация. Если нужен только новый PHP, сначала выясните, можно ли решить задачу в текущей ветке Revolution. Если необходим переход на MODX 3, включите его в отдельный план.

Что включить в проверку совместимости

Часть сайтаЧто выяснить до переключения
Revolution и ExtrasТочные версии, требования к PHP, наличие обновлений и зависимостей у дополнений.
Сниппеты и плагиныГде используется собственный PHP-код, какие события он обрабатывает и кто его поддерживает.
Формы и почтаКакие обработчики принимают данные, куда уходит письмо и есть ли передача в CRM.
Магазин и обменыКакие дополнения обслуживают каталог, заказ, оплату, доставку и импорт.
СерверРасширения и настройки PHP для сайта, а также отдельный интерпретатор в заданиях cron.

Как подготовить копию сайта

Сохраните файлы и базу данных одной рабочей версии. В файлы должны попасть не только шаблоны, но и конфигурация, дополнения, загруженные изображения и собственные скрипты. Убедитесь, что копию можно восстановить: наличие архива без проверки распаковки и базы оставляет неопределённость.

Разверните отдельный тестовый сайт и закройте его от посторонних и индексации. Отключите реальные рассылки, платежи, передачу заявок и автоматические обмены. Для проверки назначьте тестовые адреса и учётные записи. Иначе копия может отправить клиенту письмо или передать заказ во внешнюю систему.

Составьте короткий список действий, которые работают до изменения. Например: найти товар, открыть карточку, отправить форму и сохранить ресурс в панели MODX. По этому же списку будет удобно сравнить результат после смены PHP.

Порядок обновления на тестовой копии

  1. 01

    Зафиксировать исходные ошибки

    Откройте журнал MODX и серверные логи. Отделите проблемы, которые уже были, от ошибок, появившихся после обновления.

  2. 02

    Подготовить компоненты

    Проверьте требования обновлений Revolution и Extras. Определите последовательность, при которой совместимы и текущий PHP, и промежуточные версии компонентов.

  3. 03

    Переключить PHP и проверить сценарии

    Используйте выбранную версию на копии. После очистки кэша проверьте страницы, формы, управление сайтом и фоновые задания. Сопоставьте сбои с журналом ошибок.

  4. 04

    Согласовать исправления

    Для каждого несовместимого компонента определите действие: обновление, правка кода или замена. Если замена меняет поведение сайта, согласуйте её отдельно.

Что делать, если после смены PHP появилась ошибка 500

Сначала найдите запись с временем неудачного запроса в журнале PHP или веб-сервера. Важны текст ошибки, файл и строка: они помогают отличить ошибку кода от отсутствующего расширения или настройки окружения. Не публикуйте подробные сообщения об ошибках посетителям.

Если перестал работать живой сайт, сохраните текущие данные и оцените возврат предыдущей конфигурации. Не восстанавливайте старую базу поверх новых заказов только потому, что в резервной копии страницы открывались. Сначала нужно понять, менялась ли база и какие данные появились после переключения. Исправление затем проверяется на копии.

Если прежняя сборка PHP не содержит исправлений безопасности, возврат к ней возвращает и известный риск. Согласуйте восстановление с администратором и исправьте несовместимый компонент, чтобы рабочий сайт использовал патч.

Что проверить перед завершением

  • Страницы без кэша, поиск, фильтры и изображения: проверяйте разные типы страниц, а не только главную.
  • Отправку каждой важной формы: сообщение об успехе, фактическое получение письма и запись в CRM, если она подключена.
  • Панель MODX: вход, редактирование и сохранение ресурса, работа с файлами и используемыми дополнениями.
  • Для магазина — товар, корзину, заказ и тестовый платёж; для обменов — передачу тестовых данных без изменения реальных остатков.
  • Журналы ошибок после проверок и версию PHP у заданий cron. Рабочий сайт и командная строка могут использовать разные интерпретаторы.

Сколько стоит обновление PHP в MODX

В Сиверн ставка составляет 1 900 ₽/час. Минимальный расчёт — от 5 часов, то есть от 9 500 ₽. В оценку входят подготовка копии, проверка совместимости, согласованные исправления и проверка после запуска.

Пять часов не являются фиксированным сроком для любого MODX-сайта. Старые дополнения, собственный магазин или переход на MODX 3 могут увеличить объём. До начала работ согласуем часы и результат; платные компоненты и хостинг учитываются отдельно. Для оценки пришлите адрес сайта, версию Revolution и сообщение хостинга о PHP, если оно есть.

Официальная документация

Если есть признаки взлома

Уязвимая версия PHP не доказывает, что сайт уже взломан. Если появились неизвестные файлы, перенаправления или изменения данных, сохраните журналы и обратитесь за разбором инцидента. Установка патча сама по себе не удаляет внедрённый код и не восстанавливает изменённые данные. Расследование и восстановление требуют отдельной оценки.

Предупреждение PHP и помощь с обновлением

04

Обновление PHP и закрытие уязвимостей

Проверка исправлений и совместимости сайта: 1 900 ₽/час, минимальный расчёт от 5 часов — от 9 500 ₽.

Обсудить обновление