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, потенциально позволяющие удалённо выполнить свой код на любом web-сервере, выполняющем PHP-скрипты в конфигурации по умолчанию. Проблемы проявляются во всех версиях, начиная с PHP 5.4.

В сети уже появились прототипы эксплоитов (1, 2) для проверки подверженности систем уязвимости. В примечании к эксплоиту утверждается, что уязвимости вызваны обращением к уже освобождённой памяти в обработчике отслеживания прогресса загрузки файлов на 服务器 (session.upload_progress). Наличия на сайте функциональности для загрузки файлов для совершения атаки не требуется, достаточно автоматического срабатывания в PHP-интерпретаторе обработчика контента «multipart/form-data». Для успешной эксплуатации требуется определение раскладки структур в памяти процесса, которая специфична в каждой сборке (проблема решается перебором в эксплоите смещений, заранее вычисленных для пакетов из разных дистрибутивов).

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

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

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

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

if ($http_content_type ~* «multipart») {
403返回;
}

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

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

Дополнение: Опубликованы корректирующие выпуски PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35, а также подробности об исправленных критических уязвимостях. Разбор уязвимостей и официально рекомендованных обходных методов защиты опубликован в отдельной новости.

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster