Критическая уязвимость в HTTP/3 и две ошибки переполнения буфера: nginx выпускает обновления 1.30.3 и 1.31.2

NGINX

Разработчики nginx выпустили обновления стабильной (1.30.3) и основной (1.31.2) веток, устраняющие три уязвимости. Наиболее опасная из них - CVE-2026-42530, затрагивающая модуль ngx_http_v3_module, отвечающий за протокол HTTP/3. Уязвимость класса "использование после освобождения" (use-after-free) позволяет удаленному неаутентифицированному атакующему вызвать аварийный перезапуск рабочего процесса nginx. В определенных условиях возможен запуск произвольного кода.

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

CVE-2026-42530 существует в nginx версий с 1.31.0 по 1.31.1 и исправлена в версии 1.31.2. Ей присвоен базовый балл 8.1 по шкале CVSS 3.1 (высокий) и 9.2 по CVSS 4.0 (критический). Вектор атаки - сетевой, сложность высокая. Для эксплуатации требуется, чтобы nginx был настроен на использование модуля QUIC (транспортного протокола на основе UDP) для HTTP/3. Атакующий может отправить специально сформированную HTTP/3-сессию, которая вынуждает рабочий процесс переоткрыть поток кодировщика QPACK (формата сжатия заголовков в HTTP/3). Это приводит к освобождению участка памяти, который затем используется повторно (use-after-free). Если механизм рандомизации адресного пространства (ASLR) отключен или атакующий может его обойти, возможен удаленный запуск произвольного кода.

Вторая уязвимость - CVE-2026-42055, переполнение буфера в куче (heap-based buffer overflow) в модулях ngx_http_proxy_v2_module и ngx_http_grpc_module. Она затрагивает nginx Open Source версий с 1.13.10 по 1.31.1 и с 1.30.2 до 1.30.3, а также nginx Plus (версии R36 до R36 P6 и 37.0 до 37.0.2.1). Степень серьезности - средняя, однако балл CVSS 4.0 достигает 9.2. Для эксплуатации должны одновременно выполняться три условия: директива proxy_http_version установлена в значение 2 или используется директива grpc_pass, директива ignore_invalid_headers отключена, а размер large_client_header_buffers превышает 2 мегабайта. В такой конфигурации атакующий может отправить нестандартно большие заголовки при создании запроса к вышестоящему серверу. Это вызывает запись данных за пределы выделенного буфера в куче, приводящую к краху рабочего процесса и потенциальному выполнению кода (при отключенном ASLR).

Третья уязвимость - CVE-2026-48142, чтение за пределами буфера (heap buffer over-read) в модуле ngx_http_charset_module. Она затрагивает очень широкий диапазон версий: с 0.3.50 по 1.31.1 в nginx Open Source и соответствующие версии nginx Plus (R36 и 37.0). Степень серьезности оценена как низкая или средняя (CVSS 3.1 - 4.8, CVSS 4.0 - 6.3). Для возникновения ошибки администратор должен настроить в блоке location одновременно директиву source_charset utf-8; и директиву charset (например, charset koi8-r;). При обслуживании или проксировании контента через такой блок удаленный неаутентифицированный атакующий может отправить запрос, который приведет к чтению данных за пределами выделенного буфера рабочего процесса. Это может раскрыть часть памяти nginx и вызвать аварийный перезапуск. Условия эксплуатации требуют совпадения ряда факторов, что снижает практическую реализуемость атаки.

Все три уязвимости были зарегистрированы в системе CVE 17 июня 2026 года. Разработчики из компании F5, поддерживающие nginx, выпустили исправления в составе версий 1.30.3 (стабильная линейка) и 1.31.2 (основная линейка). Для nginx Plus выпущены обновления R36 P6 и 37.0.2.1.

Согласно описанию уязвимости CVE-2026-42055 от F5, эксплуатация возможна при проксировании HTTP/2-трафика с использованием proxy_http_version 2 или директивы grpc_pass. В официальном бюллетене подчеркивается, что эксплуатация всех трех уязвимостей возможна только при соблюдении специфических условий конфигурации. Тем не менее, учитывая широкое распространение nginx и его использование в критических инфраструктурах, рекомендуется как можно скорее установить обновления. Особое внимание следует уделить пользователям, включившим HTTP/3, или использующим проксирование HTTP/2 с нестандартными параметрами заголовков.

Среди пользователей nginx особенно уязвимы те, кто задействует функциональность HTTP/3: хотя эта версия протокола набирает популярность, многие администраторы включают поддержку QUIC в экспериментальном режиме. Для CVE-2026-42530 достаточно, чтобы рабочий процесс обрабатывал запросы по HTTP/3; если этот модуль отключен, угрозы нет. Для CVE-2026-42055 необходима весьма редкая комбинация директив, однако при ее наличии атака возможна без аутентификации, что делает потенциальное вторжение особенно опасным. Уязвимость CVE-2026-48142, несмотря на низкий уровень критичности, охватывает почти все версии nginx, выпущенные за последние годы, и может быть использована для утечки данных.

Обновление до версий 1.30.3 или 1.31.2 полностью устраняет все описанные проблемы. Пользователям nginx Plus следует установить версии R36 P6 или 37.0.2.1. Неприменение патчей оставляет системы под риском аварийных перезапусков, раскрытия памяти или, в отдельных сценариях, удаленного выполнения кода. Администраторам рекомендуется проверить конфигурацию на наличие уязвимых директив и применить исправления в ближайшее время.

Ссылки

 

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