Попытки эксплуатации PHP2Shell дошли до загрузки полезной нагрузки

PHP2shell

21 октября 2026 года разработчики PHP выпустили экстренные обновления, закрывающие две уязвимости - CVE-2026-109618 и CVE-2026-109619. Исследователи объединили их под общим названием PHP2Shell. Попытки эксплуатации начались вскоре после раскрытия: сканирование затронуло установки PHP, которые обрабатывают веб-запросы, включая PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed. Точный промежуток между публикацией сведений и первым запросом не установлен, однако активность быстро расширилась от проверок до попыток запустить команды операционной системы.

Описание

Часть запросов проверяла только сам факт обработки обращения. Один сканер передал управляемый идентификатор сессии, включил механизм отображения прогресса загрузки файла и отправил около 63 КБ повторяющихся данных без кода PHP и команд операционной системы. В метаданные имени файла другие запросы добавляли PHP-фрагменты - от блока с единственным комментарием, который ничего не выполняет, до кода с уникальным маркером вывода. Возврат такого маркера в ответе показывает, что вставленный код попал в исполняемый контекст; сам по себе он ещё не означает выполнения команды.

Выполнение команд за пределами интерпретатора PHP проверяли отдельные запросы. PHP-код в них декодировал значение Base64 и вызывал команду id, а вывод обрамлялся уникальными строками, чтобы автоматика нашла результат в ответе сервера. Одна и та же последовательность, по данным Arctic Wolf Labs, повторялась в полях формы с большим объёмом заполнения - предположительно, для влияния на раскладку памяти и надёжность эксплуатации. Зафиксированы и попытки доставить вторую ступень. Команды собирали сведения о хосте и учётной записи процесса, печатали подтверждающий маркер, переходили в каталог временных файлов и запрашивали дополнительный файл с внешнего сервера.

Сервер, с которого запросы пытались скачать дополнительные файлы, связан с Potassium - семейством ботнетов на основе Mirai. Synthient впервые описала это семейство в марте 2026 года и назвала его по поддомену командно-контрольного сервера. Один из двух найденных образцов работает на ARM и занимает 215 КБ, второй - на x86-64 и занимает 175 КБ. Для обоих разбор приводит 24 режима воздействия, включая флуд по UDP, TCP и ICMP, подделку флагов TCP и имитацию протокола Minecraft. Совпадающие ключ шифрования длиной 32 байта и 12-байтовое одноразовое значение указывают на общий конструктор.

Оба образца умеют получать адреса командно-контрольной инфраструктуры через Ethereum Name Service (ENS, служба имён в блокчейне Ethereum). В настройках для этого есть два имени в зоне .eth, семь публичных точек доступа к узлам Ethereum и 32 ключа текстовых записей. В найденных образцах функция отключена, поэтому возможность заложена, но не применяется. Не установлено, скачивали ли наблюдаемые запросы PHP2Shell эти файлы и запускали ли их: доступная телеметрия этого не подтверждает.

Механизм обеих уязвимостей связан с обработкой памяти, а не с десериализацией. CVE-2026-109618 приводит к повреждению памяти, когда нехватка памяти прерывает обработку при частично инициализированных данных запроса. CVE-2026-109619 оставляет глобальное состояние запроса доступным после освобождения памяти, и его может использовать следующая обработка. Запрос с сериализованным объектом Monolog к этим механизмам не относится: он рассчитан на совместимые классы в приложении и на возможность прочитать данные сессии. Загрузить файл, который эта цепочка должна была получить, во время анализа не удалось.

Оценка обеих уязвимостей по CVSS 4.0 - 9.2. Самой опасной конфигурацией разработчики считают Apache с mod_php: там, по их словам, хватает одного неаутентифицированного запроса до передачи управления приложению. Публичный эксплойт доступен, и несколько организаций независимо воспроизвели как минимум один путь эксплуатации. Исправления вышли в версиях 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Масштаб и успешность атак не установлены, а совпадения строк в запросах сами по себе не отличают проверку от эксплуатации и могут давать ложные срабатывания.

Индикаторы компрометации

Комментарии: 0