Агентство CISA 26 октября 2026 года внесло две критические уязвимости PHP — CVE-2026-109618 и CVE-2026-109619, известные под общим названием PHP2Shell, — в каталог Known Exploited Vulnerabilities (KEV). Обе уязвимости позволяют выполнить произвольный код на сервере без аутентификации и оценены в 9.2 по CVSS v4.0 (9.8 по CVSS v3.1, согласно бюллетеню Arista). Учитывая, что PHP используется примерно на 69% веб-сайтов с известным серверным языком (по данным W3Techs), масштаб потенциального воздействия огромен. Патчи доступны с 21 октября — обновление PHP является приоритетным действием для всех затронутых организаций. Мы уже подробно разбирали эти уязвимости ранее; данная статья фокусируется на подтверждении активной эксплуатации и новых деталях.
Технические детали уязвимостей
Обе уязвимости относятся к классу CWE-416 (Use After Free) и затрагивают ядро PHP, но эксплуатируют различные механизмы:
- CVE-2026-109618 — связана с некорректной обработкой ситуации нехватки памяти (OOM). При возникновении OOM PHP использует
longjmp()для выхода из текущего контекста, но внутренние данные запроса могут остаться в частично инициализированном состоянии. Последующая процедура очистки запроса обращается к этой неинициализированной памяти, что открывает путь к выполнению кода. - CVE-2026-109619 — эксплуатирует устаревшее глобальное состояние, которое продолжает ссылаться на уже освобождённую память запроса. Последующие запросы, обработанные тем же рабочим процессом, могут прочитать это устаревшее состояние до его полной переинициализации.
Согласно официальному бюллетеню безопасности PHP, затронуты все версии PHP ниже 8.2.35, 8.3.36, 8.4.27 и 8.5.12. Ветки 8.1 и старше более не получают официальных обновлений от проекта PHP, хотя дистрибутивы Linux могут предоставлять бэкпортированные исправления.
Зависимость риска от серверной конфигурации
Важный нюанс, который часто упускается в обзорах: степень уязвимости существенно зависит от используемого серверного API (SAPI). Согласно данным из GitHub-бюллетеней PHP, конфигурации различаются по уровню риска:
- Apache mod_php — наиболее уязвимая конфигурация. Эксплуатация возможна до выполнения кода приложения, поскольку mod_php безусловно вызывает процедуру завершения запроса даже при сбое на этапе инициализации.
- PHP-FPM — при сбое инициализации дочерний процесс завершается, однако отдельный путь эксплуатации через устаревшее состояние сессий подтверждён при условии, что запросы атакующего попадают к одному и тому же рабочему процессу.
- php-cgi, FrankenPHP, LiteSpeed — также указаны проектом PHP как затронутые конфигурации.
Эта зависимость от SAPI означает, что оценка риска должна учитывать конкретную архитектуру развёртывания, а не только версию PHP.
Масштаб угрозы
По данным трекера Censys, значительное количество PHP-сервисов в интернете продолжает работать на уязвимых версиях (исходный материал приводит оценку в более чем 32,51 миллиона сервисов, однако в доступном тексте трекера Censys эта цифра не подтверждена напрямую).
Масштаб реакции индустрии беспрецедентен: бюллетени безопасности выпустили десятки крупных вендоров, включая Broadcom, Citrix, Dell, F5, Ivanti, Okta, QNAP, Synology, Veeam, WordPress, а также производители промышленного оборудования — Schneider Electric, Siemens, Rockwell Automation, Moxa и Hitachi Energy. Это свидетельствует о том, что уязвимости затрагивают не только веб-приложения, но и встроенные системы управления, NAS-устройства и корпоративное ПО.
Дополнительная угроза: CVE-2026-111497 в библиотеке Brotli
Параллельно с PHP2Shell 26 октября PHP Foundation выпустил обновлённые Windows-сборки (8.5.12-1, 8.4.27-1, 8.3.36-1, 8.2.35-1), устраняющие CVE-2026-111497 — уязвимость записи за пределами буфера в библиотеке декомпрессии Brotli. Согласно описанию релиза Brotli v1.2.1, эта уязвимость также допускает удалённое выполнение кода. В PHP на Windows уязвимый декодер доступен через расширение cURL при включённой автоматической декомпрессии HTTP-ответов (по умолчанию отключена, но может быть активирована приложениями и HTTP-клиентскими библиотеками), как указывает PHP Foundation.
CVE-2026-111497 также внесена в каталог CISA KEV с крайним сроком устранения 10 ноября 2026 года. Мы ранее подробно разбирали эту уязвимость, включая её влияние на Node.js, Bun, Python, Envoy Proxy и .NET.
Рекомендации
Согласно официальной позиции проекта PHP, обновление — единственный полноценный способ устранения уязвимостей PHP2Shell. Конфигурационные изменения (такие как установка memory_limit=-1 или отключение отслеживания загрузки сессий) снижают отдельные векторы атаки, но не обеспечивают полной защиты.
- Немедленно обновите PHP до версий 8.2.35, 8.3.36, 8.4.27 или 8.5.12 (доступны на php.net).
- Для Windows-сборок — установите версии с суффиксом «-1» (8.5.12-1, 8.4.27-1, 8.3.36-1, 8.2.35-1), которые дополнительно устраняют CVE-2026-111497.
- Для PHP 8.1 и старше — ветки не получают официальных обновлений. Проверьте, предоставляет ли ваш дистрибутив бэкпортированные исправления; в противном случае необходима миграция на поддерживаемую ветку.
- Приоритизируйте серверы с mod_php — эта конфигурация наиболее уязвима и допускает эксплуатацию до выполнения кода приложения.
- Проверьте бюллетени вендоров для всех продуктов, использующих PHP в качестве встроенного компонента (NAS-устройства, системы управления, корпоративные платформы).
Крайний срок устранения для федеральных агентств США по PHP2Shell — 29 октября 2026 года, по CVE-2026-111497 — 10 ноября 2026 года. Для коммерческих организаций эти сроки следует рассматривать как ориентир приоритетности: внесение в каталог KEV означает подтверждённую активную эксплуатацию, и каждый день задержки увеличивает поверхность атаки. Обновите PHP на всех доступных из интернета серверах в первую очередь, затем — на внутренних системах с учётом используемого SAPI и наличия встроенных PHP-компонентов в стороннем ПО.












