Обновления приложения недостаточно: исправить нужно PHP, который действительно обслуживает веб-запросы.
Что означает «уязвимость чистильщика»
Точнее говорить об ошибках очистки ресурсов запроса и управления памятью. Это не просто сбой сборщика циклического мусора, который запускают через gc_collect_cycles(). Отключение сборки мусора не является исправлением опубликованных уязвимостей.
Обе проблемы получили оценку CVSS v4.0 9.2. Успешная эксплуатация может привести к выполнению кода с правами процесса веб-сервера, а не автоматически с правами root. Ошибки затрагивают среду исполнения и не требуют наличия SQL-инъекции или другой уязвимости в прикладном коде.
CVE-2026-109618: ошибка при нехватке памяти
PHP использовал longjmp() для аварийного выхода при нехватке памяти — OOM, out of memory. Выход мог прервать операцию до завершения инициализации внутренних структур. Во время завершения запроса PHP затем обращался к этим некорректным данным, что создавало возможность повреждения памяти и выполнения кода.
Для Apache с mod_php исследователи продемонстрировали сценарий до запуска кода приложения. Для PHP-FPM этот конкретный путь отличается: при сбое старта запроса дочерний процесс завершается. Это не означает, что FPM в целом защищён от обеих уязвимостей.
CVE-2026-109619: данные пережили свою память
Процесс PHP может обслужить несколько запросов подряд. Некоторые глобальные структуры сохраняли ссылки на память предыдущего запроса уже после её освобождения. Следующий запрос, попавший в тот же процесс, мог обратиться к устаревшему состоянию до его нормальной инициализации — use-after-free.
В исследовании подтверждены раскрытие памяти и удалённое выполнение кода. Пути через жизненный цикл сессий проверены на mod_php и FPM. Несколько рабочих процессов и их периодический перезапуск усложняют попадание запросов в один процесс, но не устраняют сам дефект.
Какие версии содержат исправления
Исправления двух критических ошибок выпущены в PHP 8.2.35, 8.3.36, 8.4.27 и 8.5.12. Установки, обслуживающие веб-запросы через PHP-FPM, mod_php, php-cgi, FrankenPHP и LiteSpeed, требуют проверки. Для пакетов дистрибутивов следует сверяться с бюллетенем поставщика: исправление может быть перенесено без смены основной версии.
PHP 8.1 и более старые ветки больше не получают обычных обновлений от проекта PHP. Для некоторых старых версий опубликованы минимальные исходные исправления, но владельцу сервиса нужно подтвердить наличие поддерживаемого пакета у своего поставщика либо перейти на поддерживаемую ветку.
Дополнение от 23 октября: CVE-2026-115560
23 октября PHP опубликовал отдельное предупреждение Session upload progress. При редком сочетании настроек и кода возможен ещё один путь к RCE: приложение настроено на session.serialize_handler=php_binary или php_serialize, затем переключает обработчик на php через ini_set() перед session_start(), а отслеживание загрузки файлов остаётся включённым.
Команда рекомендует session.upload_progress.enabled=0 до следующего обычного выпуска с исправлениями; полное уведомление о CVE-2026-115560 обещано вместе с ним. Если эта мера уже применена по рекомендации от 21 октября, её следует сохранить. Приложения, которые не меняют обработчик сериализации во время выполнения, могут оставить функцию включённой.
Что проверить технической команде
Порядок действий для администратора сервиса:
- Найти все веб-окружения PHP, включая контейнеры и отдельные FPM-пулы. Версия CLI может отличаться от версии сайта.
- Установить пакет с исправлениями обеих критических CVE и перезапустить обслуживающие запросы процессы; проверить фактическую сборку после перезапуска.
- Учесть предупреждение от 23 октября. Параметр session.upload_progress.enabled задавать до разбора запроса в конфигурации PHP или пула; вызов ini_set() в приложении для этой цели запаздывает.
- Проверить основные операции приложения и загрузку файлов. При невозможности срочного обновления согласовать ограничение публичного доступа до устранения риска.
- Сверить временные меры с официальным бюллетенем PHP. Отключение вывода ошибок и фильтры WAF не заменяют исправление среды исполнения.
Редакция EALP · Обновлено