21 октября 2026 года команда PHP выпустила PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35 с исправлением двух критических уязвимостей — CVE-2026-109618 и CVE-2026-109619. Обе оценены в 9.2 по CVSS v4.0 и позволяют выполнить код на сервере без авторизации. Уязвимости прозвали PHP2Shell. Команда PHP призывает обновиться немедленно.
Что случилось
По данным Хабра, подробности утекли раньше запланированного раскрытия, и часть администраторов на время выключила сайты, чтобы поставить исправления вручную. Среди них — Internet Archive и реестр доменов .de. Аналитики Sansec ожидают, что массовые атаки начнутся в течение 15 минут после выхода патчей.
- CVE-2026-109618 — выполнение кода через нехватку памяти. Обработка ошибки «закончилась память» может прервать PHP, когда внутренние данные запроса инициализированы лишь частично, а очистка после запроса затем считает эти данные корректными.
- CVE-2026-109619 — выполнение кода через устаревшее глобальное состояние. Состояние запроса может пережить освобождение памяти, и следующий запрос в том же процессе успевает им воспользоваться до штатной инициализации.
Кто под угрозой
Все установки PHP, которые обрабатывают веб-запросы: PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed. Сильнее всего рискуют серверы с mod_php: для них показан эксплойт, при котором запрос без авторизации запускает атаку ещё до того, как выполнится код приложения. Это касается и сайтов на Magento, Laravel, WordPress, OpenCart — любой платформы на PHP.
Что делать сейчас
- Обновить PHP до 8.5.12, 8.4.27, 8.3.36 или 8.2.35. Дистрибутивы Linux и поставщики LTS получили исправления заранее — проверьте обновлённые пакеты у своего поставщика или хостинга.
- PHP 8.1 и старше проект PHP больше не обновляет. Для 7.4, 8.0 и 8.1 команда выложила минимальные исправления в исходниках php-src; надёжнее — перейти на поддерживаемую версию.
- Перезапустить все процессы PHP после обновления и проверить, что работает новая версия.
Если обновиться сразу нельзя
Команда PHP перечисляет временные меры. Они закрывают известные пути атаки, но не делают сервер безопасным — полностью уязвимости устраняет только обновление.
- Для CVE-2026-109618:
memory_limit=-1так, чтобы приложение не могло его переопределить (например,php_admin_valueв пуле FPM или конфигурации Apache), и низкийpost_max_size— 8M, а если нужны загрузки файлов, 32M;upload_max_filesize— меньшеpost_max_size. Лимиты размера и числа полей, заголовков и частей запроса стоит включить и на веб-сервере или прокси, в том числе для запросов безContent-Length.RLIMIT_ASиRLIMIT_DATAне подходят. - Для CVE-2026-109619:
session.upload_progress.enabled=0вphp.ini, пуле FPM или конфигурации сервера (не черезini_set()и не в.user.ini), на PHP 8.5 — ещёfatal_error_backtraces=0; после этого перезапустить все процессы.
Мы работаем с PHP и Magento больше десяти лет. Проверим, какая версия PHP и в каком режиме работает на вашем сервере, обновим её или поставим временные меры, а со старых веток переведём на поддерживаемую версию — с тестовым стендом и планом отката.
Источники: объявление команды PHP, GHSA-w8hw-w9fx-j79w, GHSA-6wmf-4rv5-p3rp, новость на Хабре.
