Уязвимость CVE-2026-9256 в nginx 1.30.2 и 1.31.1: переполнение кучи может привести к выполнению кода

NGINX

Популярный веб-сервер nginx пополнил список критических уязвимостей. Двадцать второго мая 2026 года разработчики выпустили обновления, закрывающие опасную ошибку в модуле перезаписи запросов. Проблема зафиксирована в реестре CVE как CVE-2026-9256. Она затрагивает как открытую версию NGINX Open Source, так и коммерческий продукт NGINX Plus. Уязвимость позволяет злоумышленнику вызвать переполнение кучи в рабочем процессе сервера и, при определённых условиях, выполнить произвольный код.

Контекст и важность события

Nginx остаётся одним из самых распространённых веб-серверов в мире. Он обслуживает миллионы сайтов, включая крупные корпоративные и государственные ресурсы. Любая уязвимость в этом программном обеспечении мгновенно привлекает внимание специалистов по информационной безопасности. В данном случае риск особенно высок, потому что атакующему не требуется аутентификация. Достаточно отправить специально сформированный HTTP-запрос на уязвимый сервер. Правда, для успешной эксплуатации необходимы дополнительные условия, о которых мы поговорим позже.

Детали уязвимости

Согласно официальному бюллетеню, проблема кроется в модуле ngx_http_rewrite_module. Этот модуль отвечает за обработку директив rewrite, которые перенаправляют запросы или изменяют URI. Уязвимость возникает, когда в регулярном выражении (регулярке) используются перекрывающиеся захваты - так называемые overlapping captures в терминологии PCRE (Perl-Compatible Regular Expression - библиотека для работы с регулярными выражениями). Например, шаблон "^/((.*))$" содержит два захвата: первый - всю строку, второй - ту же самую подстроку. Если в строке замены указать ссылки на несколько таких захватов (например, "$1$2"), а сама директива используется в контексте редиректа или аргументов, происходит переполнение кучи (heap buffer overflow).

Суть в том, что при обработке замены модуль неправильно рассчитывает размер буфера. В результате данные могут записываться за пределами выделенной области в куче. Это классическая ошибка класса CWE-122 (Heap-based Buffer Overflow). Как следствие, рабочий процесс (worker process) nginx может некорректно завершиться или, что хуже, выполнить вредоносный код.

Кого затрагивает уязвимость

Уязвимость подтверждена для нескольких веток. В открытой версии NGINX Open Source опасными считаются сборки от 1.30.0 до 1.30.1 включительно, а также от 1.31.0 до 1.31.1. Иными словами, обновления 1.30.2 и 1.31.1 уже содержат исправление. Похожая ситуация в коммерческом NGINX Plus: уязвимы все сборки, начиная с R32 до R32 P7, с R36 до R36 P5, а также с 37.0 до 37.0.1.1. Разработчики из F5 выпустили патчи для всех поддерживаемых версий. Важно отметить, что окончание технической поддержки некоторых релизов не влияет на оценку - они просто не рассматривались.

словия эксплуатации и последствия

Создатели уязвимости оценили её серьёзность в 8,1 балла по шкале CVSS 3.1 и 9,2 балла по версии 4.0. Высокий рейтинг объясняется потенциальной возможностью выполнить код на уровне рабочего процесса. Правда, для этого необходимо преодолеть механизм рандомизации адресного пространства (ASLR - Address Space Layout Randomization). Если ASLR включён, атакующему нужно найти способ его обойти или воспользоваться тем, что он отключён. Тем не менее даже без выполнения кода переполнение кучи приводит к аварийной перезагрузке процесса. Для злоумышленника это может стать частью более сложной цепочки атак.

К слову, исследователь Mufeed VH из Winfunc Research обнаружил и сообщил об этой проблеме. Благодаря оперативному исправлению, уязвимость остаётся теоретической угрозой для большинства обновлённых систем. Но специалистам по безопасности следует немедленно проверить версии своих серверов.

Рекомендации для администраторов

Главная мера защиты - обновить nginx до актуальных версий. Для NGINX Open Source это версии 1.30.2 и 1.31.1 и новее. Для NGINX Plus - до R32 P7, R36 P5 или 37.0.1.1 соответственно. Тем, кто не может немедленно обновиться, стоит временно отключить модуль ngx_http_rewrite_module или тщательно проверить настройки, особенно директивы rewrite с регулярными выражениями, содержащими перекрывающиеся захваты. Однако лучшей практикой остаётся установка патча.

Кроме того, следует убедиться, что на сервере включён ASLR и другие механизмы защиты памяти. Они не устраняют уязвимость, но усложняют её эксплуатацию. Администраторам рекомендуется следить за бюллетенями безопасности F5 и nginx, а также застраховать свою инфраструктуру дополнительными средствами: веб-приложениями, системами обнаружения вторжений (IDS), контроля целостности и проактивным мониторингом.

Выводы

Уязвимость CVE-2026-9256 в nginx - серьёзный сигнал для всех, кто использует этот веб-сервер. Несмотря на то, что для её эксплуатации нужны определённые условия, потенциальный ущерб высок. В мире кибербезопасности счёт часто идёт на часы: чем быстрее системные администраторы установят исправление, тем меньше риск злонамеренного использования. Разработчики F5 и сообщество nginx уже выпустили патчи, и теперь дело за практиками. Помните: профилактика дешевле, чем ликвидация последствий атаки.

Ссылки

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