PHP2Shell: угроза удаленного выполнения кода
21 октября 2026 года в языке PHP обнаружили две критические уязвимости. Согласно данным php.net, уязвимостям CVE-2026-109618 и CVE-2026-109619 подвержены версии ниже 8.2.35, 8.3.36, 8.4.27 и 8.5.12. Для более старых веток официальных исправлений нет. По неофициальным данным, уязвимости затрагивают и PHP начиная с 5.4.0.
Обе уязвимости получили 9,2 балла по шкале CVSS v4.0. Они вызваны тем, что после прерванного запроса (например, из-за нехватки памяти) PHP оставляет в памяти некорректные данные и затем обращается к ним, что позволяет выполнить код на сервере. Одна из подтвержденных цепочек атаки через CVE-2026-109619 использует механизм session.upload_progress (отслеживание прогресса загрузки файлов), который включен в PHP по умолчанию.
По данным разработчиков PHP, под угрозой все установки непропатченных версий, обрабатывающие веб-запросы, включая PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed. Наибольший риск у mod_php: для него исследователи продемонстрировали эксплойт, в котором неаутентифицированный запрос запускает атаку еще до выполнения кода приложения.
Команда разработчиков языка выпустила обновления для всех поддерживаемых веток, но первые попытки эксплуатации были замечены еще до публикации патчей — эксплойт получил название PHP2Shell.
Что делать бизнесу?
- Обновить PHP до версий 8.5.12, 8.4.27, 8.3.36 или 8.2.35. Исходный код доступен на официальном сайте. Если PHP установлен из пакетов дистрибутива или предоставлен хостингом, проверить наличие обновленных пакетов: Linux-дистрибутивы и LTS-вендоры получили патчи заранее. Если сервером управляет хостинг-провайдер, попросить его применить обновление.
- Версии 8.1 и старше больше не получают обновлений от проекта PHP. Уточнить у вендора дистрибутива или LTS-поддержки, есть ли бэкпортированные исправления, или перейти на поддерживаемую ветку.
- Перезапустить PHP-FPM или веб-сервер, чтобы рабочие процессы загрузили новый код, и проверьте версию командой php -v. Если PHP ставился из пакетов дистрибутива, свериться с журналом изменений пакета: номер версии может остаться прежним.
- Проверить логи с 20 октября. Тревожный признак — процесс веб-сервера выполняет то, чего не должен (запускает командные оболочки, curl, wget и подобное).