21 октября 2026 года вышли исправления для PHP2Shell — двух критических уязвимостей в ядре PHP, которые позволяют выполнить чужой код на сервере без логина и пароля. Мы обслуживаем серверы с панелью HestiaCP, на которых одновременно стоят от двух до двенадцати версий PHP. За одну ночь мы пропатчили 50 установок PHP на шести серверах, и почти на каждом шаге «успешное» обновление могло оставить сервер уязвимым. Рассказываем, где подвох, и делимся скриптом, который всё это учитывает.
Что случилось
PHP2Shell — это CVE-2026-109618 и CVE-2026-109619. Одна ошибка связана с обработкой нехватки памяти, вторая — с состоянием, которое «зависает» между запросами одного рабочего процесса. Команда PHP оценила обе в 9.2 балла из 10 по CVSS 4.0 (ранние сообщения про 10.0 оказались ошибочными).
- Исправленные версии: 8.5.12, 8.4.27, 8.3.36 и 8.2.35.
- Ветки 7.4–8.1: официальных релизов нет, только исправления от поставщиков пакетов.
- Атаки: по данным watchTowr и Tenable, попытки эксплуатации идут, первые — ещё до публичного раскрытия. По оценке Palo Alto Networks, открытых установок PHP — более 22,6 млн.
Кого касается
Практически всех, у кого сайт работает на PHP: 1С-Битрикс, WordPress, MODX, самописные проекты. Источники расходятся в точных границах уязвимых версий, поэтому безопасно исходить из простого правила: уязвимы все версии до исправленных.
Особенно внимательными стоит быть владельцам VPS с панелями вроде HestiaCP. Панель позволяет держать на сервере несколько версий PHP, и за годы их накапливается много: под старый сайт поставили 5.6, под новый — 8.3, под тест — 8.4. Забытая версия с одним-единственным сайтом открывает весь сервер.