- Автор темы
- #1
Специалисты из компании Calif представили новую DoS-атаку под названием HTTP/2 Bomb, которая затрагивает популярные веб-серверы и прокси, включая nginx, Apache HTTP Server, Microsoft IIS, Envoy и Cloudflare Pingora. Атака сочетает сразу два давно известных подхода и позволяет одной машине быстро исчерпать десятки гигабайт памяти на сервере.
По словам исследователей, проблема присутствует в стандартной конфигурации HTTP/2 и не связана с какой-либо конкретной реализацией протокола. Стоит отметить, что проблему обнаружили с помощью OpenAI Codex, который помог объединить две уже известные техники атак.
В основе HTTP/2 Bomb лежит комбинация HPACK-компрессии и техники Slowloris. Первая часть отвечает за резкое увеличение потребления памяти, а вторая не позволяет серверу освободить эту память.
Атака злоупотребляет механизмом HPACK — алгоритмом сжатия заголовков HTTP/2. Злоумышленник добавляет запись в динамическую таблицу HPACK, а затем многократно ссылается на нее с помощью индексной записи размером всего один байт. В итоге один байт входящего трафика может вынудить сервер выделять тысячи байт памяти.
Хуже всего в тестах исследователей показали себя Envoy и Apache HTTP Server, где коэффициент амплификации достигал примерно 5700:1 и 4000:1 соответственно.
Однако ключевой особенностью атаки HTTP/2 Bomb является не сама компрессия. Специалисты поясняют, что сервер обычно освобождает выделенную память после завершения запроса. Чтобы этого не произошло, атакующий устанавливает нулевой размер окна управления потоком (flow-control window). Из-за этого запрос не завершается полностью, а занятая память остается закрепленной за соединением.
По словам авторов исследования, именно сочетание двух механизмов делает атаку настолько опасной. Ограничения на размер декодированных заголовков не помогают защититься от HTTP/2 Bomb, поскольку сами заголовки остаются маленькими. Основная нагрузка приходится на внутренние структуры, которые сервер создает для обработки каждой записи.
Практические тесты показали, что даже обычный домашний ПК с каналом 100 Мбит/с способен вывести уязвимый сервер из строя за считанные секунды. Например, в случае Apache HTTP Server и Envoy один клиент может занять и удерживать около 32 Гбайт памяти примерно за 20 секунд.
Во время тестирования исследователи получили следующие результаты:
Полные технические подробности HTTP/2 Bomb эксперты обещают раскрыть позже в этом месяце на конференции Real World AI Security. При этом PoC-код уже опубликован.
Отмечается, что в nginx проблема устранена в версии 1.29.8, где появился новый параметр max_headers. Исправление для Apache HTTPD вошло в mod_http2 2.0.41, и проблема получила идентификатор CVE-2026-49975.
Для Microsoft IIS, Envoy и Cloudflare Pingora патчей пока нет. Владельцам таких систем советуют по возможности отключить HTTP/2, либо разместить перед сервером прокси или межсетевой экран с жесткими ограничениями на количество заголовков. Кроме того, защиту могут обеспечить CDN, обратные прокси, WAF и нестандартные настройки серверов, которые не позволяют напрямую обращаться к уязвимому HTTP/2-эндпоинту.
По словам исследователей, проблема присутствует в стандартной конфигурации HTTP/2 и не связана с какой-либо конкретной реализацией протокола. Стоит отметить, что проблему обнаружили с помощью OpenAI Codex, который помог объединить две уже известные техники атак.
В основе HTTP/2 Bomb лежит комбинация HPACK-компрессии и техники Slowloris. Первая часть отвечает за резкое увеличение потребления памяти, а вторая не позволяет серверу освободить эту память.
Атака злоупотребляет механизмом HPACK — алгоритмом сжатия заголовков HTTP/2. Злоумышленник добавляет запись в динамическую таблицу HPACK, а затем многократно ссылается на нее с помощью индексной записи размером всего один байт. В итоге один байт входящего трафика может вынудить сервер выделять тысячи байт памяти.
Хуже всего в тестах исследователей показали себя Envoy и Apache HTTP Server, где коэффициент амплификации достигал примерно 5700:1 и 4000:1 соответственно.
Однако ключевой особенностью атаки HTTP/2 Bomb является не сама компрессия. Специалисты поясняют, что сервер обычно освобождает выделенную память после завершения запроса. Чтобы этого не произошло, атакующий устанавливает нулевой размер окна управления потоком (flow-control window). Из-за этого запрос не завершается полностью, а занятая память остается закрепленной за соединением.
По словам авторов исследования, именно сочетание двух механизмов делает атаку настолько опасной. Ограничения на размер декодированных заголовков не помогают защититься от HTTP/2 Bomb, поскольку сами заголовки остаются маленькими. Основная нагрузка приходится на внутренние структуры, которые сервер создает для обработки каждой записи.
Практические тесты показали, что даже обычный домашний ПК с каналом 100 Мбит/с способен вывести уязвимый сервер из строя за считанные секунды. Например, в случае Apache HTTP Server и Envoy один клиент может занять и удерживать около 32 Гбайт памяти примерно за 20 секунд.
Во время тестирования исследователи получили следующие результаты:
- Envoy 1.37.2 исчерпал 32 Гбайт памяти примерно за 10 секунд;
- Apache httpd 2.4.67 — за 18 секунд;
- nginx 1.29.7 — примерно за 45 секунд;
- Microsoft IIS на Windows Server 2025 занял 64 Гбайт памяти примерно за 45 секунд.
Полные технические подробности HTTP/2 Bomb эксперты обещают раскрыть позже в этом месяце на конференции Real World AI Security. При этом PoC-код уже опубликован.
Отмечается, что в nginx проблема устранена в версии 1.29.8, где появился новый параметр max_headers. Исправление для Apache HTTPD вошло в mod_http2 2.0.41, и проблема получила идентификатор CVE-2026-49975.
Для Microsoft IIS, Envoy и Cloudflare Pingora патчей пока нет. Владельцам таких систем советуют по возможности отключить HTTP/2, либо разместить перед сервером прокси или межсетевой экран с жесткими ограничениями на количество заголовков. Кроме того, защиту могут обеспечить CDN, обратные прокси, WAF и нестандартные настройки серверов, которые не позволяют напрямую обращаться к уязвимому HTTP/2-эндпоинту.
