Материалы / Доработка, настройка и поддержка сайтов

# Критические уязвимости PHP: как защитить сайт на MODX

Команда PHP сообщила о критических уязвимостях и выпустила исправления. Что проверить владельцу MODX: PHP у хостинга, совместимость Revolution и Extras, формы и работу сайта после установки патча.

Автор: Сиверн, Редакция

Опубликовано: 04.11.2026

Доработка, настройка и поддержка сайтов <https://sivern.tech/materialy/temy/dorabotka-sajta/>

## Почему владельцу 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.

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

- 01

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

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

- 02

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

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

- 03

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

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

- 04

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

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

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

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

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

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

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

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

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

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

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

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

01

### Требования MODX

Требования к серверу и расширениям PHP для текущих выпусков Revolution.

Открыть требования <https://docs.modx.com/3.x/en/getting-started/server-requirements>

02

### Переход с MODX 2 на MODX 3

Изменения, которые могут затронуть дополнения и собственный код.

Прочитать руководство <https://docs.modx.com/3.x/en/getting-started/upgrading-to-3.0>

03

### Поддержка версий PHP

Сроки поддержки веток PHP. Проверяйте их при выборе целевой версии.

Проверить поддержку <https://www.php.net/supported-versions.php>

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

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

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

01

### Предупреждение от 20 октября 2026 года

Официальный анонс срочного выпуска исправлений PHP.

Прочитать сообщение PHP <https://www.php.net/archive/2026.php#2026-10-20-1>

02

### CVE-2026-109618

Описание и исправленные версии от команды PHP.

Открыть уведомление <https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w>

03

### CVE-2026-109619

Описание и исправленные версии от команды PHP.

Открыть уведомление <https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp>

04

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

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

Обсудить обновление <https://sivern.tech/uslugi/obnovlenie-php/>

Следующий шаг

## Обсудим вашу задачу?

Поможем разобраться в ситуации и определим следующий шаг для проекта.

Оставить заявку <https://sivern.tech/postavit-zadachu/?quick=1>

+7 (952) 898 46-01 <tel:+79528984601> send@sivern.tech <mailto:send@sivern.tech>
