Волна попыток эксплуатации нацелилась на механизм обработки составных запросов и передачи прогресса загрузки файлов в PHP. Обновления, закрывающие две критические уязвимости - CVE-2026-109618 и CVE-2026-109619, - проект PHP выпустил 21 октября 2026 года в экстренном порядке. Случаев успешной компрометации, связанных с этими уязвимостями, на момент публикации не зафиксировано. При этом активность не ограничилась одиночными проверками: часть запросов содержит признаки подготовки к выполнению команд.
Описание
По данным Wordfence межсетевой экран компании заблокировал более 74 000 попыток эксплуатации и зондирования, связанных с двумя новыми уязвимостями, а также родственных атак на ту же поверхность составных запросов и прогресса загрузки. Пик пришёлся на 21 октября, когда зафиксировали 44 394 заблокированные попытки; днём ранее - 1 174, а 22 октября - 29 307. Компания защищает более 5 000 000 сайтов на WordPress.
В выборке из 10 000 событий, собранной с 20 по 22 октября, различимы несколько семейств нагрузки. Выборку составляли по запросам, где упоминается механизм прогресса загрузки сессий PHP, поэтому весь подозрительный трафик она не отражает. На попытки выполнения кода через исчерпание памяти и искажение состояния пришлось 3 752 события, на цепочки сериализованных объектов Laravel - 1 139. Прочие сериализованные нагрузки с классами Monolog, Symfony, Guzzle, WordPress и ThinkPHP дали 2 534 события, попытки отравления файлов сессий - 512, внеполосные проверки загрузки - 30.
Подсчёты по сериализованным объектам описывают характер нагрузки и пересекаются с другими категориями. Выборка содержит запросы, а не ответы серверов и не данные о процессах, поэтому приведённые числа измеряют попытки, а не состоявшийся результат. Сам запрос не доказывает ни искажения памяти, ни выполнения команды.
Среди задач, которые просматриваются в запросах, - проверка выполнения команды по текстовым маркерам, сбор сведений о сервере и чтение переменных окружения вместе с файлами конфигурации WordPress и приложения. Часть запросов ищет доступные для записи каталоги загрузок, плагинов и тем, чтобы оставить PHP-скрипт с постоянным доступом. Другие обращаются к внешним утилитам загрузки за второй стадией. Ряд запросов проверяет результат через собственные хосты обратного вызова, что позволяет судить о выполнении в обход журналов приложения.
Трафик с давлением на память и сериализованными объектами соответствует попыткам использовать поведение, которое закрывают обновления PHP. Запросы на отравление файлов сессий и немногочисленные внеполосные проверки загрузки опираются на другие дефекты или особенности приложения. Поэтому их нельзя описывать как подтверждённую эксплуатацию CVE-2026-109618 или CVE-2026-109619.
Лабораторные результаты расходятся с картиной в сети. В специально настроенной среде PHP 8.5.11 под Apache выполнение кода подтвердили при проверке CVE-2026-109619; тот же демонстрационный код ронял обычную оптимизированную сборку PHP 8.5.11, а исправленная 8.5.12 сохраняла работоспособность. Для CVE-2026-109618 воспроизвели разницу между уязвимой и исправленной версиями, но выполнение кода получить не удалось. Эксплуатация зависит от конфигурации PHP, серверного интерфейса приложений, загруженных расширений, классов приложения и состояния рабочих процессов.
Подтверждение успеха потребовало бы данных об ответах, файловой системе, процессах, падениях рабочих процессов и исходящих запросах с целевого сервера. Отсутствие подтверждённой компрометации в наблюдаемой телеметрии не говорит о безопасности сервера без исправлений, поскольку часть сбоев и обратных вызовов происходит вне приложения WordPress и его журналов. Исправления выпущены для веток 8.5, 8.4, 8.3 и 8.2; обновление самого WordPress PHP не обновляет.