Отслеживание загрузки файлов в сессиях PHP допускает удалённое выполнение кода

php

Механизм PHP, который показывает ход загрузки файла через сессию, при редком сочетании настроек открывает путь к удалённому выполнению кода. То есть сервер может начать исполнять команды, которых в приложении нет. Разработчики PHP считают такой сценарий маловероятным и не готовят внеплановое исправление. Затронуты приложения, которые меняют способ хранения данных сессии во время работы.

CVE-2026-115560 в механизме загрузки сессий PHP

Предупреждение разработчики опубликовали 23 октября 2026 года. Проблема числится под номером CVE-2026-115560, где CVE - стандартный идентификатор публично раскрытых уязвимостей. Экстренного патча не будет: правка попадёт в очередной плановый выпуск. Вместе с ним выйдет и полный технический бюллетень.

Оценки опасности в уведомлении нет. Разработчики не назвали ни балл по шкале CVSS (общая система оценки уязвимостей), ни уровень. Номер уязвимой версии PHP и номер исправленной сборки не указаны. Сроки выпуска тоже открыты, их нужно искать в будущем бюллетене. Сведений об эксплуатации в реальных атаках на момент публикации не поступало; раскрытие факта уязвимости не означает, что её уже используют.

Атака срабатывает только при необычном сочетании конфигурации и кода приложения. Сначала параметр session.serialize_handler должен принимать значение php_binary или php_serialize. Затем приложение во время работы переключает его на php, причём до старта сессии. Одновременно должно оставаться включённым отслеживание хода загрузки через сессии. Сериализация здесь - преобразование данных сеанса в формат, пригодный для хранения.

Если приложение не меняет обработчик сериализации на ходу, описанный путь для него закрыт. На практике такая последовательность встречается редко, поэтому разработчики отнесли правку к обычному циклу выпуска. Условия атаки они не уточняют: неясно, нужна ли аутентификация, требуется ли участие пользователя и приходит ли запрос по сети. Как именно расхождение обработчиков приводит к выполнению кода, тоже не раскрыто.

Отслеживание хода загрузки - служебная функция. Браузер сообщает серверу, сколько байт файла уже принято, и приложение рисует индикатор прогресса. Многим сайтам она не нужна вовсе, поэтому её отключение редко что-то ломает.

До выхода исправления команда PHP советует выставить параметру session.upload_progress.enabled значение 0. Запрет убирает только индикатор хода загрузки, сама возможность загружать файлы остаётся. Ту же меру предлагали 21 октября в уведомлении по CVE-2026-109619. Если настройка применена с тех пор и сохранена, дополнительных действий не требуется.

Других обходных мер разработчики не называют. Практическая значимость ограничена редким набором условий, поэтому обновляться можно вместе с плановым выпуском. Администраторам достаточно проверить конфигурацию и дождаться бюллетеня, где появятся версии и оценка. Недавние экстренные исправления PHP уже вызвали активность атакующих, но к новой проблеме это пока не относится: сообщений о её использовании нет.

Ссылки

Комментарии: 0