Уязвимость в PHP, потенциально позволяющая скомпрометировать любой PHP-сайт

Разработчики PHP анонсировали публикации сегодня в 17:00 (MSK) экстренных корректирующих выпусков (8.5.12, 8.4.27, 8.3.36 и 8.2.35), в которых будут устранены две критические уязвимости. Всем администраторам серверов с PHP рекомендовано незамедлительно установить исправления на своих системах, сразу после их появления. Официально детали будут раскрыты только после появления исправлений, но судя по появившейся в открытом доступе информации, речь про уязвимости CVE-2026-109618 и CVE-2026-109619, потенциально позволяющие удалённо выполнить свой код на любом сервере, выполняющем PHP-скрипты. Проблема проявляется во всех версиях, начиная с PHP 5.4.

В сети уже появились прототипы эксплоитов (1, 2) для проверки подверженности систем уязвимости, достоверность и безопасность которых пока не подтверждена. В примечании к эксплоиту утверждается, что уязвимости вызваны обращением к уже освобождённой памяти в обработчике отслеживания прогресса загрузки файлов на сервер (session.upload_progress).

В качестве обходного пути защиты встречаются рекомендации выставить в php.ini параметр «session.upload_progress.enabled = off» (или «php_admin_flag[session.upload_progress.enabled] = off» в PHP-FPM), но представитель проекта PHP, а также автор первого прототипа эксплоита утверждают, что для блокирования проблемы этого недостаточно. В примечании к второму прототипу эксплоита упоминается, что помимо вышеупомянутой настройки в php.ini для предотвращения атаки требуется блокировка запросов с типом контента «multipart/form-data».

В Apache httpd для блокировки multipart-запросов можно использовать следующее правило в mod_rewrite:


   RewriteCond %{HTTP:Content-Type} multipart [NC]
   RewriteRule ^ - [F,L]

Для блокировки в nginx:


    if ($http_content_type ~* "multipart") {
        return 403;
    }

Для блокировки в Caddy:


   @multipart header_regexp Content-Type (?i)multipart
   respond @multipart 403

Источник: http://www.opennet.ru/opennews/art.shtml?num=66516