PHP2Shell: обновите PHP, пока это не стало инцидентом
Две критические уязвимости PHP позволяют атаковать сервер до запуска приложения. Узнайте исправленные версии, порядок обновления и что проверить на серверах в Кишинёве и Молдове.
Обновление безопасности PHP нельзя откладывать до следующего редизайна или спринта. 21 октября 2026 года команда PHP выпустила исправления для двух критических уязвимостей — CVE-2026-109618 и CVE-2026-109619, известных как PHP2Shell. В некоторых конфигурациях специально сформированный HTTP-запрос может привести к выполнению кода без аутентификации. Проблема находится в runtime PHP, а не в плагине WordPress или версии Laravel.
В нашем стеке сервисов мы проверили фактическую версию runtime и обнаружили PHP 8.4.24. Мы зафиксировали версию Docker-образа на 8.4.27, пересобрали контейнеры и после перезапуска проверили PHP-FPM, queue, Reverb и scheduler. Сейчас все они работают на исправленной версии. Обновление применено на уровне runtime, а не только в коде приложения.
Для компаний, которые поддерживают сайты, интернет-магазины и порталы в Кишинёве и по всей Молдове, практический вопрос прост: какая версия PHP фактически работает на каждом сервере и в каждом контейнере?
Какие версии PHP нужно обновить
Установите как минимум исправленную версию своей ветки. Более ранние версии перечисленных веток уязвимы:
- PHP 8.5.0–8.5.11 → обновите до 8.5.12 или новее;
- PHP 8.4.0–8.4.26 → обновите до 8.4.27 или новее;
- PHP 8.3.0–8.3.35 → обновите до 8.3.36 или новее;
- PHP 8.2.0–8.2.34 → обновите до 8.2.35 или новее.
Ветка PHP 8.2 получает обновления безопасности до 31 декабря 2026 года. Если вы планируете миграцию сейчас, выберите ветку с более длительной поддержкой — например PHP 8.3, 8.4 или 8.5 — и предварительно проверьте совместимость приложения. PHP 8.1 и более старые версии больше не получают обычные релизы от проекта PHP. Некоторые дистрибутивы и поставщики выпускают backport-исправления; проверяйте рекомендации поставщика и установленный пакет, а не только номер версии.
Пороговые версии и рекомендации опубликованы в официальном уведомлении PHP от 21 октября. Сроки поддержки веток указаны на странице PHP Supported Versions.
Почему важно обновить runtime
Первая уязвимость связана с обработкой нехватки памяти и внутренним состоянием запроса во время очистки. Вторая касается глобального состояния, которое сохраняется после освобождения памяти и может быть использовано тем же процессом PHP позднее. Фильтр в приложении или обновление плагина не исправит сам PHP.
Риск касается PHP, обрабатывающего веб-запросы: PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed. На сервере могут одновременно работать несколько версий, а команда php -v показывает CLI, который не обязательно используется сайтом.
Шаги для полного устранения уязвимости
- Составьте перечень runtime-сред. Проверьте PHP-FPM и Apache, работающие контейнеры, базовые образы, worker-процессы, scheduler и staging-среды.
- Обновите нужный источник пакета. Обновите пакет дистрибутива или базовый образ до исправленной версии. Для PHP 8.1 и старше письменно подтвердите backport у поставщика либо запланируйте переход на поддерживаемую ветку.
- Перезапустите все процессы PHP. Новый пакет не заменяет бинарный файл, уже загруженный процессами FPM и долгоживущими worker-процессами.
- Проверьте все SAPI и серверы. Подтвердите версию после deploy именно в среде, которая обслуживает трафик, а не только в терминале разработки.
- Просмотрите журналы. Если система оставалась уязвимой, проверьте журналы веб-сервера и PHP на необычные ошибки и отдельно оцените необходимость реагирования на инцидент.
Ограничение размера запросов или отключение отдельной функции может снизить некоторые риски, но не заменяет обновление. PHP указывает, что полное устранение достигается установкой исправленного релиза.
Обновление PHP и безопасность сайтов в Кишинёве
TAG.md предлагает технический аудит и поддержку при обновлении инфраструктуры сайтов, интернет-магазинов и порталов: мы инвентаризируем runtime-среды, проверяем совместимость приложения, подготавливаем deploy и подтверждаем активные версии после перезапуска служб. Если вы управляете проектом в Кишинёве или Молдове и хотите проверить, какая версия PHP работает в production, обсудите с нами техническую оценку.