CVE-2026-90439 в NGINX: переполнение буфера в HTTP/3, уязвимые версии и защита

CVE: CVE-2026-90439
Продукт: NGINX
Дата публикации: 15.09.2026
Критичность: MEDIUM
CVSS: 6.9 (4.0)
EPSS: 0,26%; процентиль 17,45%
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


15 сентября 2026 года F5 опубликовала уведомление об уязвимости CVE-2026-90439 в модуле ngx_http_v3_module. Дефект позволяет удалённому атакующему вызвать переполнение кучи при обработке TLS-рукопожатия, что приводит к перезапуску воркера и ограниченной порче данных.

Исправление доступно в версиях 1.31.6 и 1.30.5. Ниже описаны условия срабатывания, механика атаки и порядок проверки системы.

Основные характеристики​


Уязвимость представляет собой переполнение кучи (heap buffer overflow) в компоненте обработки HTTP/3. Риск заключается в отказе в обслуживании (DoS) и ограниченной порче данных при обработке TLS-соединений. Атака возможна удалённо без аутентификации, однако её срабатывание не детерминировано и не полностью контролируется злоумышленником.

  • Тип ошибки: CWE-122 (Heap-based Buffer Overflow).
  • CVSS 4.0: 6.9 (MEDIUM). Вектор: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X.
  • Условия атаки: Сеть (AV:N), низкая сложность (AC:L), отсутствие требований к аутентификации (PR:N).
  • Эксплуатация: Подтверждённых фактов массового использования в дикой природе (KEV) на момент публикации нет.
  • EPSS: 0,26% (0.00256), что указывает на низкую вероятность эксплуатации в ближайшие 30 дней.

Какие продукты и версии затронуты​


Уязвимость затрагивает продукты NGINX Open Source и NGINX Plus, использующие модуль ngx_http_v3_module. Согласно официальным данным вендора, дефект присутствует в следующих диапазонах версий:

  • NGINX Open Source: 1.29.2 – 1.31.5.
  • NGINX Plus: 1.29.2 – 1.31.5.

Версии, не содержащие уязвимость:

  • NGINX Open Source: 1.31.6 и выше.
  • NGINX Plus: 1.30.5 и выше.

Важно учитывать, что уязвимость проявляется только при использовании HTTP/3 в связке с OpenSSL версий 3.5.0 и ниже. Версии, достигшие статуса End of Technical Support (EoTS), не оценивались.

Причина уязвимости​


Причина дефекта кроется в некорректной обработке данных в модуле ngx_http_v3_module. При выполнении TLS-рукопожатия в условиях определённой конфигурации происходит переполнение ограниченного буфера в куче (heap buffer overflow).

Критическим фактором является взаимодействие с библиотекой OpenSSL. Если в системе установлена версия OpenSSL 3.5.0 или более ранняя, логика обработки рукопожатия может привести к записи данных за пределы выделенной памяти. Это нарушает целостность структуры данных в процессе-воркере NGINX.

Как работает атака​


Атакующий направляет на уязвимый сервер запрос, инициирующий TLS-рукопожатие через протокол HTTP/3. В процессе обработки этого соединения модуль ngx_http_v3_module взаимодействует с OpenSSL. При определённых условиях конфигурации происходит переполнение буфера в куче.

Срабатывание уязвимости не является детерминированным. Атакующий не может гарантированно вызвать переполнение по своему желанию; процесс происходит в режиме, выходящем за рамки прямого контроля злоумышленника. Тем не менее, при успешном срабатывании происходит повреждение памяти, что приводит к аварийному завершению процесса-воркера (restart) и потенциальной ограниченной порче данных.

Условия успешной эксплуатации​


Для успешной эксплуатации уязвимости должны быть выполнены следующие условия:

  • Сервер работает на уязвимой версии NGINX (1.29.2 – 1.31.5).
  • В конфигурации NGINX включена поддержка HTTP/3.
  • Используется библиотека OpenSSL версии 3.5.0 или более ранней.
  • Атакующий имеет сетевой доступ к порту, на котором слушает HTTP/3.

Аутентификация не требуется. Уязвимость находится в data plane, поэтому контроль-план (control plane) не затрагивается.

Возможный сценарий атаки​


Злоумышленник сканирует сеть в поисках серверов, поддерживающих HTTP/3. Выбрав цель, он инициирует TLS-рукопожатие.

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

В худшем случае возможна порча данных, обрабатываемых в момент сбоя. Поскольку атака не детерминирована, атакующему может потребоваться несколько попыток для достижения эффекта.

Есть ли публичный эксплойт​


На момент публикации CVE-2026-90439 в каталоге CISA KEV (Known Exploited Vulnerabilities) уязвимость не фигурирует. Это означает, что нет подтверждённых данных о её активном использовании в реальных атаках.

Публичные эксплойты или PoC (Proof of Concept) в открытых источниках не зафиксированы. Отсутствие сведений об эксплуатации не гарантирует, что эксплойт не существует, но текущий статус указывает на то, что уязвимость пока не используется массово.

Признаки эксплуатации​


Специфичных индикаторов компрометации (IOC), уникальных именно для CVE-2026-90439, в официальных источниках не опубликовано. Для выявления атаки следует использовать общие методы мониторинга отказов в обслуживании:

  • Частые аварийные завершения (crash) процессов-воркеров NGINX.
  • Записи в системном журнале (syslog) о сегментации (segfault) или ошибках памяти в процессе nginx.
  • Пиковые значения CPU или памяти, предшествующие перезапуску воркеров.

Эти признаки неспецифичны и могут быть вызваны другими причинами, но в контексте HTTP/3 и OpenSSL они требуют внимания.

Как обнаружить атаку​


Для обнаружения попыток эксплуатации или последствий уязвимости рекомендуется настроить мониторинг следующих событий:

  • Логи ошибок NGINX: Отслеживание сообщений об аварийном завершении воркеров, особенно связанных с обработкой HTTP/3.
  • Системные журналы: Анализ записей ядра Linux о сегментации процессов nginx.
  • Мониторинг доступности: Наблюдение за внезапными сбоями в обслуживании HTTP/3-трафика.

Также полезно проверять конфигурацию на наличие использования уязвимых версий OpenSSL в связке с HTTP/3.

Как проверить свою версию​


Для проверки текущей версии NGINX и определения необходимости обновления используйте следующие команды:

Bash:
nginx -v
nginx -V
dpkg-query -W nginx 2>/dev/null || rpm -q nginx 2>/dev/null

Команда nginx -V также покажет параметры компиляции, включая версию OpenSSL. Если версия NGINX находится в диапазоне 1.29.2 – 1.31.5, а версия OpenSSL не превышает 3.5.0, система уязвима.

Исправление​


Единственным надёжным способом устранения уязвимости является обновление NGINX до версий, содержащих исправление:

  • NGINX Open Source: обновить до версии 1.31.6 или выше.
  • NGINX Plus: обновить до версии 1.30.5 или выше.

После обновления необходимо перезапустить сервис NGINX для применения изменений. Также рекомендуется проверить, что используемая версия OpenSSL соответствует требованиям безопасности, хотя основной вектор атаки связан с логикой модуля ngx_http_v3_module.

Временные меры защиты​


Если немедленное обновление невозможно, можно временно снизить риск, отключив поддержку HTTP/3 в конфигурации NGINX. Это исключит использование уязвимого модуля ngx_http_v3_module.

Пример отключения HTTP/3 (зависит от версии и конфигурации):

NGINX:
# Убедитесь, что listen-директивы не содержат опции http3
# Например, вместо:
# listen [::]:443 ssl http3;
# используйте:
# listen [::]:443 ssl;

После изменения конфигурации выполните nginx -t для проверки синтаксиса и перезагрузите сервис. Это временная мера, так как отключение HTTP/3 может повлиять на производительность и функциональность.

Как проверить устранение уязвимости​


После обновления NGINX необходимо убедиться, что уязвимость устранена:

  • Проверьте версию: nginx -v должна показывать 1.31.6+ (для Open Source) или 1.30.5+ (для Plus).
  • Проверьте конфигурацию: убедитесь, что HTTP/3 настроен корректно, если он всё ещё используется.
  • Проведите функциональное тестирование HTTP/3-соединений, чтобы убедиться в работоспособности сервиса.
  • Мониторьте логи на предмет повторных аварийных завершений воркеров после обновления.

Вывод​


CVE-2026-90439 представляет собой уязвимость средней критичности, ведущую к отказу в обслуживании и порче данных. Несмотря на отсутствие подтверждённых фактов массового использования, риск для систем с включённым HTTP/3 и устаревшим OpenSSL реален.

Рекомендуется как можно скорее обновить NGINX до исправленных версий. Если это невозможно, временно отключите HTTP/3. Регулярный мониторинг логов и версий поможет своевременно выявлять и устранять подобные угрозы.

Официальные источники​


  1. NVD — CVE-2026-90439
  2. FIRST EPSS — CVE-2026-90439
  3. myF5
  4. nginx security advisories

История обновлений статьи​


  • 16.09.2026 — Опубликована первая версия материала.
  • 17.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
 
Последнее редактирование:

Похожие темы

Назад
Верх Низ