- Регистрация
- Окт 17, 2022
- Сообщения
- 870
- Реакции
- 91
- Награды
- 1
Уязвимость в открытом веб-сервере NGINX, обнаруженная 18 лет назад с помощью автономной системы сканирования, может быть использована для осуществления атак типа «отказ в обслуживании» и, при определенных условиях, для удаленного выполнения кода.
Уязвимость зарегистрирована как CVE-2026-42945 и получила критическую оценку серьезности 9,2 на основе последней версии системы оценки уязвимостей Common Vulnerability Scoring System (CVSS).
В ходе шестичасового сканирования кода исследователи из компании DepthFirst AI, специализирующейся на безопасности с использованием искусственного интеллекта, обнаружили еще три уязвимости, связанные с повреждением памяти.
NGINX — это широко используемая платформа веб-серверов и обратных прокси, на которой работает треть сайтов, занимающих верхние строчки рейтинга . Она эффективно балансирует нагрузку, распределяя входящий сетевой трафик между несколькими серверами бэкэнда, и сокращает время загрузки за счет кэширования контента.
Веб-сервер, принадлежащий и поддерживаемый американской технологической компанией F5, используется облачными провайдерами, компаниями, предоставляющими SaaS-услуги, банками, медиаплатформами, сайтами электронной коммерции, а также в кластерах Kubernetes.
CVE-2026-42945 — это ошибка переполнения буфера в куче в модуле ngx_http_rewrite_module, затрагивающая версии NGINX от 0.6.27 до 1.30.0, которая присутствует в коде проекта уже около 18 лет.
По данным DepthFirst, уязвимость может быть активирована, если в конфигурациях NGINX используются одновременно директивы 'rewrite' и 'set', что, по словам исследователей, часто встречается в API-шлюзах и системах обратного прокси.
Недостаток заключается в непоследовательной обработке состояния во внутреннем механизме скриптов NGINX, который обрабатывает запросы на перезапись в два этапа: один для расчета объема выделяемой памяти, а другой для копирования фактических данных.
После перезаписи, содержащей символ '?', флаг 'is_args' остается установленным, из-за чего NGINX вычисляет размер буфера, используя неэкранированные длины URI, но позже записывает более крупные экранированные данные, такие как '+' и '&', что приводит к переполнению буфера в куче.
Исследователи продемонстрировали выполнение кода без аутентификации с помощью специально сформированных HTTP-запросов, которые повреждают смежные структуры пула памяти NGINX, перезаписывают указатели обработчика очистки, внедряют фиктивные структуры в память через тела POST-запросов и заставляют NGINX выполнять функцию 'system()' во время очистки пула.
Однако удаленное выполнение кода было достигнуто в системе с отключенной защитой от атак на основе памяти, обеспечиваемой рандомизацией адресного пространства (ASLR). Эта защита активна по умолчанию, но ее можно отключить для повышения производительности в некоторых средах, таких как встроенные системы и виртуальные машины, используемые для анализа.
Компания DepthFirst отмечает, что многопроцессная архитектура NGINX упрощает эксплуатацию уязвимостей, поскольку рабочие процессы наследуют практически идентичное расположение памяти от главного процесса, что позволяет надежно манипулировать кучей и предпринимать повторные попытки в случае сбоя рабочего процесса.
«Если наша уязвимость не сработает и приведет к сбою рабочего процесса, главный процесс просто запустит новый с точно такой же структурой памяти», — объясняют исследователи .
«Это позволяет нам безопасно повторять попытки несколько раз, пока не добьемся успеха, не опасаясь сбоя в работе программы и изменения структуры памяти».
«Теоретически, мы могли бы использовать эту конструкцию для утечки ASLR (рандомизации расположения адресного пространства) путем постепенной перезаписи указателей байт за байтом».
Остальные три недостатка, выявленные программой DepthFirst, получили средний уровень серьезности:
- CVE-2026-42946 — чрезмерное выделение памяти в модулях SCGI/UWSGI, которое может привести к сбою рабочих процессов из-за выделения примерно 1 ТБ памяти (высокая степень опасности).
- CVE-2026-40701 — использование памяти после освобождения в асинхронной обработке разрешения DNS-запросов OCSP (средняя степень серьезности)
- CVE-2026-42934 — ошибка синтаксического анализа UTF-8 с погрешностью в одну позицию, приводящая к чтению за пределами допустимого диапазона (средняя степень серьезности)
Влияние и исправления
Уязвимости были обнаружены 18 апреля 2026 года и сообщены поставщику 21 апреля.
Согласно опубликованному вчера уведомлению F5 о безопасности , уязвимости затрагивают следующие сборки NGINX:
- Версии NGINX Open Source с 0.6.27 по 1.30.0
- NGINX Plus R32–R36
- NGINX Instance Manager версий 2.16.0–2.21.1
- F5 WAF для NGINX версий 5.9.0–5.12.1
- NGINX App Protect WAF версий 4.9.0–4.16.0 и 5.1.0–5.8.0
- F5 DoS для NGINX 4.8.0
- NGINX App Protect DoS 4.3.0–4.7.0
- NGINX Gateway Fabric версий 1.3.0–1.6.2 и 2.0.0–2.5.1
- Контроллер NGINX Ingress Controller версий 3.5.0–3.7.2, 4.0.0–4.0.1 и 5.0.0–5.4.1
Тем, кто не может обновиться, F5 рекомендует заменить безымянные группы захвата PCRE ($1, $2 и т. д.) в уязвимых правилах «перезаписи» на именованные группы захвата, что устраняет основное условие для эксплуатации уязвимости.
Возможность эксплуатации в реальном мире
Некоторые исследователи в области безопасности опровергли заявления о реальной уязвимости CVE-2026-42945, утверждая, что представленное компанией DepthFirst доказательство работоспособности уязвимости основано на весьма специфических условиях, которые обычно отсутствуют в стандартных развертываниях.
Исследователь Кевин Бомонт отметил , что для эксплуатации уязвимости требуется уязвимая конфигурация NGINX с использованием определенных шаблонов перезаписи, злоумышленник должен знать или обнаружить затронутую конечную точку, а опубликованный PoC с удаленным выполнением кода был протестирован с отключенным ASLR.
Бомонт подчеркнул, что эксплойт исследователей был создан на основе заведомо уязвимой конфигурации и не демонстрирует надежного выполнения кода на защищенных реальных системах.
Компания AlmaLinux подтвердила аналогичную оценку в своем уведомлении , после того как независимо воспроизвела уязвимость.
Разработчики дистрибутива Linux подтвердили, что сбой рабочих процессов NGINX с помощью специально сформированного запроса является тривиальной и надежной задачей, что делает атаки типа «отказ в обслуживании» вполне реалистичными.
Однако они заявили, что преобразование переполнения кучи в надежное удаленное выполнение кода в системах с включенной функцией ASLR «не является тривиальной задачей», и они не ожидают появления универсального и надежного эксплойта в результате работы depthfirst.
В то же время AlmaLinux предупредила, что «непросто» не означает «невозможно», и потенциальная угроза DoS-атак сама по себе является достаточной причиной для того, чтобы рассматривать этот вопрос как неотложный.

