05.06.2026 — CVE-2026-49975 HTTP/2 Bomb — удаленный отказ в обслуживании в реализациях HTTP/2 {#CVE-2026-49975}
Идентификатор CVE (CVE ID): CVE-2026-49975
Дополнительный идентификатор: CVE-2026-47774 — уязвимость в Envoy.
Ссылка на CVE: <https://www.cve.org/CVERecord?id=CVE-2026-49975>
На момент публикации карточка NIST NVD для CVE-2026-49975 публично не создана. CVE присвоен CNA, запись на cve.org находится в статусе Reserved и будет обновлена после публикации данных.
Исходный отчет {#original-report-CVE-2026-49975}
- Codex Discovered a Hidden HTTP/2 Bomb: <https://blog.calif.io/p/codex-discovered-a-hidden-http2-bomb>
- PoC и материалы исследования: <https://github.com/califio/publications/tree/main/MADBugs/http2-bomb>
- Патч NGINX, директива
max_headers: <https://github.com/nginx/nginx/commit/365694160a85229a7cb006738de9260d49ff5fa2>
Документация NGINX по maxheaders: <https://nginx.org/en/docs/http/ngxhttpcoremodule.html#max_headers>
- Патч Apache httpd,
mod_http2v2.0.41: <https://github.com/apache/httpd/commit/47d3100b252dc6668a9e46ae885242be9eeca9cd>
Релизы Apache modh2: <https://github.com/icing/modh2/releases>
- Envoy Security Advisory GHSA-22m2-hvr2-xqc8 / CVE-2026-47774: <https://github.com/envoyproxy/envoy/security/advisories/GHSA-22m2-hvr2-xqc8>
- RFC 7541 (HPACK): <https://www.rfc-editor.org/rfc/rfc7541>
- RFC 9113 (HTTP/2): <https://www.rfc-editor.org/rfc/rfc9113>
- nginx;
- Apache httpd /
mod_http2; - Microsoft IIS;
- Envoy;
- Cloudflare Pingora.
- вектор атаки: сетевой;
- сложность атаки: низкая;
- привилегии: не требуются;
- взаимодействие пользователя: не требуется;
- влияние на конфиденциальность: отсутствует;
- влияние на целостность: отсутствует;
- влияние на доступность: высокое.
Краткое описание {#brief-description-CVE-2026-49975}
Исследователи Calif обнаружили уязвимость класса denial of service в обработке HTTP/2-запросов рядом популярных веб-серверов и прокси. Атака получила название HTTP/2 Bomb.
Уязвимость связана с особенностями обработки HTTP/2 HPACK и flow control. Злоумышленник может отправлять компактно закодированные HTTP/2-заголовки, которые при декодировании приводят к значительному росту потребления памяти на стороне сервера. Механизм flow control при этом может использоваться для удержания потоков открытыми и закрепления выделенной памяти.
Успешная эксплуатация может привести к исчерпанию памяти процесса, аварийному завершению worker-процессов или отказу в обслуживании HTTP/2 endpoint. Для эксплуатации не требуется аутентификация.
Уязвимость влияет только на доступность сервиса. На момент публикации нет данных о возможности раскрытия или изменения пользовательских данных через эту уязвимость.
Затронутые технологии {#technologies-affected-CVE-2026-49975}
Проблема актуальна для систем, которые принимают HTTP/2-трафик напрямую и используют уязвимые версии веб-серверов, reverse proxy или HTTP/2-терминаторов.
Подтвержденные в исходном отчете реализации:
HTTP/1.1-only endpoint не подвержен описанной цепочке атаки HTTP/2 Bomb.
Уязвимые продукты и версии {#vulnerable-products-and-versions-CVE-2026-49975}
#| || Продукт | Уязвимые версии / состояние | Исправление || || nginx | Версии ниже 1.29.8 при включенном HTTP/2. В отчете подтверждена эксплуатация на nginx 1.29.7. | Обновите до nginx 1.29.8 или новее. В версии 1.29.8 добавлена директива maxheaders со значением по умолчанию1000. || || NGINX Plus | Версии, основанные на nginx Open Source ниже 1.29.8, при включенном HTTP/2. | Используйте версию NGINX Plus, включающую исправление maxheaders, например NGINX Plus PLS.37.0.0.1 LTS или новее. || || Apache httpd / modhttp2 | Версии с modhttp2 ниже 2.0.41. В отчете подтверждена эксплуатация на Apache httpd 2.4.67. | Обновите mod_http2 до 2.0.41 или новее. Проверьте наличие исправления в пакетах вашего дистрибутива или vendor-сборке Apache httpd. || || Envoy | Версии до исправленных веток 1.35.11, 1.36.7, 1.37.3 и 1.38.1. Для Envoy опубликован отдельный advisory GHSA-22m2-hvr2-xqc8 и CVE-2026-47774. | Обновите Envoy до 1.35.11, 1.36.7, 1.37.3, 1.38.1 или более новой исправленной версии. || || Microsoft IIS | Уязвимость подтверждена для Microsoft IIS на Windows Server 2025. На момент подготовки бюллетеня публичное исправление в исходном отчете не подтверждено. | Следите за обновлениями Microsoft. До выхода исправления отключите HTTP/2 или закройте прямой доступ к IIS за защищенным L7-балансировщиком. || || Cloudflare Pingora | Уязвимость подтверждена для Pingora 0.8.0. На момент подготовки бюллетеня публичное исправление в исходном отчете не подтверждено. | Следите за обновлениями Pingora/Cloudflare. До выхода исправления отключите HTTP/2 или используйте внешний L7-терминатор с ограничениями на HTTP/2-заголовки. || |#
Разработчик {#vendor-CVE-2026-49975}
Уязвимость затрагивает несколько независимых разработчиков веб-серверов и прокси (смотрите таблицу выше). Патчи для nginx, Apache mod_http2 и Envoy уже выпущены. Для Microsoft IIS и Cloudflare Pingora публичные исправления на момент публикации бюллетеня отсутствуют.
Вектор атаки и уровень опасности согласно CVSS v.3.1 {#attack-vector-and-severity-level-CVE-2026-49975}
Для CVE-2026-49975 базовая оценка CVSS в NIST NVD на момент публикации отсутствует.
По характеру воздействия уязвимость относится к классу удаленного отказа в обслуживании:
Для связанной уязвимости Envoy CVE-2026-47774 в GitHub Security Advisory указана оценка 7,5 HIGH с вектором:
<code>CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H</code>
Рекомендации по обнаружению уязвимости и дополнительные материалы {#recommendations-for-vulnerability-detection-CVE-2026-49975}
Проверьте, принимают ли ваши публичные сервисы HTTP/2-трафик напрямую на уязвимых компонентах.
Для nginx:
<code>nginx -v nginx -T | grep -Ei 'http2|max_headers|listen .*443'</code>
Для Apache httpd:
<code>apachectl -M | grep -i http2 httpd -v</code>
Для Envoy:
<code>envoy --version</code>
Также рекомендуется проверить публичные endpoints на поддержку HTTP/2 через ALPN и убедиться, что backend-сервисы не доступны напрямую в обход балансировщика.
Признаки возможной эксплуатации:
- резкий рост потребления памяти процессами web server или reverse proxy;
- OOM kill worker-процессов;
- большое количество долгоживущих HTTP/2 streams;
- аномальное число HTTP/2-запросов с большим количеством cookie или header fragments;
- рост 5xx-ответов или недоступность endpoint без соответствующего роста легитимной нагрузки.
Безопасная версия уязвимого продукта или патч {#safe-version-CVE-2026-49975}
Рекомендуется обновить уязвимые компоненты до следующих версий или новее:
- nginx: 1.29.8 и выше;
- NGINX Plus: версия, включающая исправление из nginx Open Source 1.29.8, например NGINX Plus PLS.37.0.0.1 LTS и выше;
- Apache
mod_http2: 2.0.41 и выше; - Envoy: 1.35.11, 1.36.7, 1.37.3, 1.38.1 или более новая исправленная версия;
- Microsoft IIS: установите исправление Microsoft после публикации, до этого примените временные меры;
- Cloudflare Pingora: установите исправление производителя после публикации, до этого примените временные меры.
Митигации
Если немедленное обновление невозможно, примените временные меры снижения риска.
1. Используйте управляемые балансировщики нагрузки Yandex Cloud
Для публичных HTTP/HTTPS-сервисов рекомендуется использовать Yandex Application Load Balancer как единую публичную точку входа.
Рекомендуемая схема:
<code>Internet
-> Yandex Application Load Balancer
-> private backend group</code>
Backend-сервисы не должны быть доступны напрямую из интернета. Настройте группы безопасности так, чтобы входящий трафик к backend-инстансам или подам разрешался только от балансировщика и доверенных внутренних сетей.
Для HTTP/HTTPS-нагрузки предпочтительно использовать L7-балансировщик. L4-балансировка без завершения HTTP/2 не устраняет риск, если уязвимый HTTP/2-терминатор остается доступен на backend.
2. Отключите HTTP/2 на уязвимых публичных endpoint
Если обновление пока невозможно, временно отключите HTTP/2.
Для nginx:
<code>server {
listen 443 ssl;
http2 off;
}</code>
Для конфигураций, где HTTP/2 включен через параметр listen, удалите параметр http2:
<code>listen 443 ssl;</code>
Для Apache httpd:
<code>Protocols http/1.1</code>
Для Envoy временно отключите downstream HTTP/2 на публичных listeners, если это совместимо с вашим сервисом.
Для IIS отключите HTTP/2 согласно документации Microsoft или закройте прямой доступ к IIS за L7-балансировщиком, который завершает HTTP/2 и применяет ограничения.
3. Ограничьте HTTP/2-заголовки и cookie
Настройте жесткие лимиты:
- максимальное количество HTTP-заголовков;
- максимальный decoded размер заголовков, а не только encoded HPACK-размер;
- максимальный размер cookie;
- максимальное количество cookie fragments;
- максимальное количество одновременных HTTP/2 streams на соединение;
- максимальное время жизни stream/request;
- таймауты idle/read/send для HTTP/2-соединений.
Для nginx 1.29.8 и выше используйте директиву max_headers:
<code>max_headers 1000;</code>Для Apache httpd учитывайте, что
LimitRequestFieldSize может быть только частичной мерой, а LimitRequestFields не полностью закрывает описанный сценарий для уязвимых версий modhttp2. Приоритетная мера — обновление modhttp2 до исправленной версии.
4. Ограничьте последствия исчерпания памяти
Как дополнительную защиту настройте лимиты ресурсов для процессов и контейнеров:
- cgroups или container memory limits;
MemoryMaxв systemd;- Kubernetes resource limits;
ulimit;- автоматический restart policy для worker-процессов.
Эти меры не исправляют уязвимость, но помогают ограничить blast radius при попытке эксплуатации.
5. Закройте прямой доступ к backend
Проверьте, что backend-сервисы, работающие на nginx, Apache httpd, Envoy, IIS или Pingora, не опубликованы напрямую в интернете в обход балансировщика.
Особенно важно проверить:
- публичные IPv4/IPv6-адреса виртуальных машин;
- NodePort/LoadBalancer-сервисы в Kubernetes;
- Ingress-контроллеры;
- debug/staging endpoints;
- временные NAT- или firewall-правила.
Для Yandex Managed Service for Kubernetes:
- для кластеров с публичными адресами ограничьте доступ к API кластера (порты 443 и 6443) конкретными нужными префиксами;
- для всех кластеров (с публичными и приватными адресами мастеров) убедитесь, что в группе безопасности кластера есть правило, разрешающее трафик из источника «Проверки состояния балансировщика» на порты 7890 и 7891;
- для всех кластеров убедитесь, что в группе безопасности кластера отсутствуют правила, разрешающие трафик на порты 7890 и 7891 с других источников.
Хронология раскрытия {#timeline-disclosure-CVE-2026-49975}
- Апрель 2026 — уязвимость передана разработчикам nginx, исправление добавлено в nginx 1.29.8;
- 27.05.2026 — уязвимость передана Apache, исправление внесено в
mod_http22.0.41; - 02.06.2026 — опубликован исходный отчет Calif «Codex Discovered a Hidden HTTP/2 Bomb»;
- 03.06.2026 — опубликован advisory Envoy GHSA-22m2-hvr2-xqc8 / CVE-2026-47774 и исправленные версии Envoy;
- 05.06.2026 — опубликован бюллетень Yandex Cloud.
Влияние на сервисы Yandex Cloud {#impact-on-yandex-cloud-services-CVE-2026-49975}
Сервисы Yandex Cloud обновляются для предотвращения возможности эксплуатации уязвимости. Уязвимость не затрагивает конфиденциальность или целостность пользовательских данных.
Пользовательские сервисы, самостоятельно развернутые на виртуальных машинах, в контейнерах, в Yandex Managed Service for Kubernetes или в собственных образах, требуют проверки со стороны владельцев этих сервисов.
Пользователям рекомендуется:
- использовать Yandex Application Load Balancer для публичных HTTP/HTTPS endpoint;
- закрыть прямой доступ к backend-сервисам из интернета;
- обновить nginx, Apache httpd /
mod_http2, Envoy, IIS или Pingora до исправленных версий; - применить временные митигации, если обновление невозможно немедленно;
- проверить, что HTTP/2 не включен на уязвимых публичных endpoint без необходимости.