Через сутки после публикации исправлений эксплуатация двух уязвимостей в PHP-рантайме, известных как PHP2Shell, вышла за пределы сканирования. В течение 21 и 22 октября 2026 года сенсоры фиксировали доставку загрузчика Mirai, исполняемого файла DDoS-ботнета, агента удалённого доступа на Go и веб-оболочек, записанных в каталоги веб-серверов. Обе уязвимости, CVE-2026-109618 и CVE-2026-109619, имеют оценку 9.2 по CVSS v4.0 и позволяют выполнить код на веб-сервере без аутентификации. Дефекты находятся в самом PHP, а не в приложении или плагине, поэтому защищённый код сайта от них не закрывает.
Описание
Первые признаки активности появились до публичного раскрытия. 17 октября, за четыре дня до выхода исправлений, ханипоты (ловушки, имитирующие уязвимые сервисы) записали попытку эксплуатации. Детали утекли в открытый доступ 20 октября, а 21 октября около 13:34 UTC проект PHP опубликовал исправленные сборки. По данным Trellix, за несколько часов после этого число попыток эксплуатации выросло от тысяч до миллионов.
Полезная нагрузка появилась в тот же день. Днём 21 октября сенсоры записали загрузчик Mirai, вечером - веб-оболочку в каталоге веб-сервера. 22 октября доставлены исполняемый файл DDoS-ботнета и агент удалённого доступа на Go. Тогда же тела запросов начали менять, чтобы обойти правила фильтрации на прокси.
Один из образцов относится к семейству Mirai, известному как Potassium. Это семейство описано публично ранее в этом году, то есть набор инструментов у атакующих не новый. Наблюдаемая нагрузка остаётся типовой: операторы действующих ботнетов добавили PHP2Shell как ещё один способ распространения.
Масштаб компрометации при этом не установлен. Публичные данные не показывают, сколько рабочих серверов было скомпрометировано в результате попыток. Ни одна группа программ-вымогателей и ни один названный субъект угроз с PHP2Shell не связаны. Не установлено и то, какая доля запросов привела к выполнению кода: часть отсекают фильтры, часть приходится на сканеры.
Успешная эксплуатация может проходить незаметно. Рабочий процесс PHP не завершается аварийно и возвращает обычный ответ 200, поэтому журналы приложения способны не содержать записей о срабатывании. Секреты в памяти рабочего процесса на незакрытых хостах, а именно пароли к базам данных, ключи API и токены сессий, предположительно были доступны атакующим.
Риск зависит от способа подключения PHP к серверу. Наиболее опасно сочетание Apache с mod_php: выполнение кода там демонстрировали до запуска кода приложения. Затронуты также PHP-FPM, CGI, FrankenPHP и LiteSpeed. Демонстрации эксплуатации провели на WordPress, Drupal и Joomla, а срабатывание подтвердили на Magento, Nextcloud и phpMyAdmin. Исправления выпущены в версиях 8.5.12, 8.4.27, 8.3.36 и 8.2.35.
Отдельная часть риска связана со сторонними продуктами и устройствами со встроенным PHP. Исправления для них выходят отдельно от самого рантайма, и часть таких систем остаётся без обновлений.
Адреса командно-контрольных серверов Mirai хранятся в DNS-записях в перемешанном виде и декодируются самим ботом, который использует собственные зашитые серверы имён. Перестановка фиксированная: первый октет остаётся на месте, три остальных сдвигаются на одну позицию. Прямой ответ DNS поэтому может указывать на посторонний адрес, не связанный с ботнетом, и настоящий адрес получается только после обратной перестановки.
Границы описанной картины задаёт время наблюдений. Все записи о нагрузке относятся к 21 и 22 октября, поэтому о более поздних изменениях в наборе инструментов судить нельзя. Расхождение остаётся и в атрибуции уязвимостей: путь через поле прогресса загрузки сессии проект PHP относит к CVE-2026-109619, а часть исследовательских команд - к CVE-2026-109618. Описанные в публичных разборах признаки дают ложные срабатывания, поскольку составной POST-запрос с полем прогресса загрузки сессии встречается в легитимном трафике, а сообщение об исчерпании лимита памяти появляется и при обычных сбоях.