NGINX устранил 5 уязвимостей, включая возможный удаленный код и ошибку TLS, которая может пропускать проверки клиентских сертификатов

Nginx уязвимости безопасность исправления Tls Http/3 thehackernews.com

Исправлены 5 уязвимостей NGINX, включая критические ошибки памяти и подделку TLS. Обновите до 1.30.6 или 1.31.7 для защиты от атак. Узнайте, как проверить конфигурацию и применить обходные пути.

14 октября NGINX выпустила версии 1.30.6 и 1.31.7 для устранения пяти уязвимостей, одна из которых присутствовала во всех релизах с мая 2005 года.
Три ошибки работы с памятью, которые, по словам F5, компании-разработчика NGINX, могут привести к сбою рабочего процесса или даже к выполнению кода злоумышленником, требуют для эксплуатации специфической конфигурации.
Четвертая уязвимость позволяет злоумышленнику подделать TLS-сессию, которая может обойти проверку клиентских сертификатов, хотя F5 называет подделку недетерминированной и неподконтрольной атакующему. Пятая уязвимость позволяет клиенту HTTP/3 вставить дополнительные байты в запрос, которые NGINX передает на бэкенд.
По состоянию на 15 октября ни одна из пяти уязвимостей не была включена в каталог CISA «Известные эксплуатируемые уязвимости», и ни NGINX, ни F5 не сообщают об атаках. NGINX оценивает все пять уязвимостей как «средние». F5 присвоила трем ошибкам работы с памятью рейтинг 9.2 (критический) по шкале CVSS v4.0, уязвимости TLS — 8.3, а уязвимости HTTP/3 — 6.9.
Каждая из пяти уязвимостей требует наличия определенной директивы: псевдонима с rewrite, карты регулярных выражений, AIO с SSI, общего кэша TLS-сессий или HTTP/3. Собственная документация NGINX рекомендует общий кэш сессий и буферизацию запросов; другое условие для уязвимости HTTP/3 включено по умолчанию.
Уязвимость TLS связана с автоматической ротацией ключей сессионных билетов. Сессионные билеты позволяют клиенту возобновить TLS-сессию без полного рукопожатия, а начиная с версии 1.23.2 (октябрь 2022 г.) общий кэш сессий заставляет NGINX генерировать и ротировать ключи билетов самостоятельно, если только ключи не загружаются из файла.
Каждый рабочий процесс хранит копию трех слотов ключей. При ротации копировались только два, поэтому третий слот содержал то, что было в памяти ранее, и билет с указанием этого слота мог быть проверен и расшифрован с использованием этого неинициализированного материала ключа, «что позволяло подделать сессию», говорится в коммите с исправлениями.
F5 утверждает, что подделка работает «в недетерминированном режиме, неподконтрольном атакующему», и что злоумышленник может использовать ее для обхода проверки клиентских сертификатов. Раскрытая настройка `ssl_session_cache shared:SSL:10m` — это та, которую документация NGINX использует в своем примере конфигурации. NGINX исправила уязвимость повторного использования сессий с тем же последствием, CVE-2025-23419, в феврале 2025 года.
Условия и обходные пути, приведенные ниже, предоставлены NGINX и F5. Диапазоны версий взяты со страницы рекомендаций NGINX.
Уязвимость карты, CVE-2026-93479, находится в коде обработки строк, который NGINX исправила 15 июля для CVE-2026-42533, переполнения кучи, которое F5 оценила в 9.2 и которое достигается через захваты карты регулярных выражений.
Новое переполнение стало возможным после изменения в июльском релизе, согласно коммиту с исправлениями. Июльское исправление добавило защиту от переполнения буфера, но данные все еще могли попасть в зарезервированную область, а второе июльское исправление затем определило размер конечной строки по этой просочившейся длине, так что строка могла превысить размер своего буфера.
Коммит устанавливает для нее ограничения. Переполнение составляет максимум размер зарезервированной области в пути корневого каталога документа, а один нулевой байт — в пути журнала доступа.
В рекомендациях F5 и на странице рекомендаций NGINX указаны 1.30.0 и 1.31.2 как ранние затронутые версии, которые предшествуют июльскому изменению. Сервер, исправленный в июле, в любом случае попадает в затронутый диапазон.
Июльский обходной путь F5 уже вызывал сомнения. Исследователь Стэн Шоу сообщил The Hacker News в июле, что переход на именованные захваты оставил более узкий путь открытым, и что обновление было «единственным полным исправлением».
Коммиты с исправлениями для уязвимостей псевдонима, AIO и HTTP/3 описывают остальные три ошибки. Уязвимость псевдонима возникает в момент после того, как rewrite изменяет URI запроса, и до того, как NGINX выбирает следующее расположение. Если что-либо считывает $request_filename в этом окне, а префикс расположения длиннее измененного URI, сопоставление URI с путем к файлу приводит к переполнению буфера.
Уязвимость AIO связана со счетчиком. Каждая ожидающая асинхронная операция по запросу увеличивает 8-битное поле без проверки, поэтому 256 ожидающих операций обнуляют его, и запрос может быть освобожден, пока эти операции все еще указывают на его память. NGINX называет SSI-страницы с командами включения виртуальных элементов, которые могут выполнять включенные запросы параллельно, как триггер.
Уязвимость HTTP/3 возникла из-за того, что одно поле парсера выполняло две функции: хранение оставшейся длины неизвестного кадра, который пропускается, и количества байтов DATA для передачи в качестве тела запроса. Когда неизвестный кадр был разделен на два чтения, оставшееся количество было обработано как тело и отправлено на бэкенд, вне проверки `client_max_body_size`.
Обновитесь до версии 1.30.6 в стабильной ветке или 1.31.7 в основной. Стабильный релиз содержит только исправления. NGINX публикует исправления только для этих двух веток, поэтому более старые ветки, такие как 1.28, остаются в затронутых диапазонах, а пакет дистрибутива исправлен только в том случае, если ваш дистрибутив бэкпортировал исправления.
Клиенты NGINX Plus и пользователи продуктов F5 Ingress Controller, Gateway Fabric, Instance Manager и WAF должны ознакомиться с рекомендациями F5, в которых перечислены затронутые сборки и, для нескольких продуктов, отсутствуют исправленные сборки по состоянию на 15 октября.
Если вы пока не можете обновиться, в таблице выше приведены обходные пути F5 для каждой уязвимости. Чтобы узнать, какие пути включены на вашем сервере, выведите текущую конфигурацию с помощью `nginx -T` и найдите в ней `alias` рядом с `rewrite`, карту регулярных выражений (`map`), используемую `root` или `log_format`, `aio` вместе с `ssi`, строки `listen` с `quic` и `ssl_session_cache shared` без `ssl_session_ticket_key`.
Переполнение модуля rewrite, которое NGINX исправила в мае (CVE-2026-42945), было эксплуатировано в течение нескольких дней после раскрытия, как обнаружила VulnCheck. Это восьмой выпуск безопасности NGINX в 2026 году.
F5 приписывает уязвимость карты Мэтту Суиче из Tolmo и Матеушу Герблински, уязвимость HTTP/3 — Хансолу Ли из GOTROOT, уязвимость TLS — PhiNode Labs, а уязвимость AIO — исследователю под псевдонимом Cyberlanc3r.
Уязвимость псевдонима была обнаружена самой F5. В тот же день NGINX выпустила njs 1.0.2, исправив две уязвимости средней степени серьезности, связанные с обработкой XML, в своем JavaScript-модуле: CVE-2026-101025 и CVE-2026-101019.

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

В тренде:


Похожие новости: