Исследователь безопасности Куанг Луонг из команды Codex обнаружил новую технику удаленной атаки типа "отказ в обслуживании" (DoS), которая использует комбинацию двух давно известных слабостей протокола HTTP/2. Атака, получившая название HTTP/2 Bomb, позволяет клиенту с низкой пропускной способностью за секунды заставить сервер выделить до 32 ГБ памяти, делая его неотвечающим. Под ударом оказались распространенные веб-серверы: nginx, Apache httpd, Microsoft IIS, прокси-сервер Envoy и Cloudflare Pingora. Исследование опубликовано через ресурс California, специализирующийся на отчетах об уязвимостях.
Атака строится на двух механизмах. Первый - HPACK Indexed Reference Bomb. Протокол HTTP/2 использует алгоритм сжатия заголовков HPACK (определен в RFC 7541), при котором сервер и клиент ведут общую динамическую таблицу ссылок. Злоумышленник вставляет в таблицу небольшой заголовок, а затем многократно ссылается на него однобайтовыми индексами. Каждая ссылка вынуждает сервер выделять память для полной записи заголовка. Коэффициент усиления достигает 5700:1 для Envoy и 4000:1 для Apache. Второй механизм - злоупотребление управлением потоком (flow control). Атакующий объявляет окно управления потоком нулевого размера, не позволяя серверу завершить отправку ответа. При этом периодически отправляются 1-байтовые фреймы WINDOW_UPDATE, чтобы поддерживать соединение активным. Вся выделенная память остается заблокированной - это напоминает атаку Slowloris, но на уровне протокола HTTP/2.
Критическим обходным маневром стало разделение заголовков Cookie на множество "крошек" (cookie crumbs). Некоторые серверы при подсчете ограничений на количество заголовков (например, LimitRequestFields) учитывают только целые заголовки, игнорируя фрагменты. Это позволяет бесконечно расширять количество ссылок на заголовки, не активируя штатные защиты.
Тестирование показало масштаб угрозы. Один сервер с подключением 100 Мбит/с за 20 секунд вынудил Apache httpd и Envoy выделить 32 ГБ оперативной памяти каждый. В результате серверы переставали обрабатывать легитимные запросы. По данным сканирования интернета, обнаружено более 880 000 открытых конечных точек HTTP/2, работающих на уязвимых версиях. Правда, часть из них экранирована сетями доставки контента (CDN).
Техника не является принципиально новой. Она развивает результаты десятилетних исследований, включая оригинальную "HPACK Bomb" (CVE-2016-6581), атаки Slowloris на HTTP/2 (CVE-2016-8740, CVE-2016-1546) и более поздние проблемы усиления HPACK в Apache (CVE-2025-53020). Для атаки HTTP/2 Bomb закреплен новый идентификатор CVE-2026-49975, который касается исправления в Apache httpd: теперь сервер считает заголовки Cookie так же, как остальные, что блокирует один из ключевых обходов.
Патчи для разных вендоров выходят неравномерно. Для nginx обновление до версии 1.29.8 включает директиву max_headers со значением по умолчанию 1000, что ограничивает число заголовков. Если обновить сервер невозможно, рекомендуется отключить HTTP/2 директивой http2 off. Пользователи Apache могут установить исправленный модуль mod_http2 версии 2.0.41 - он доступен отдельно, но пока не включен в стабильный релиз 2.4.x. В качестве временной меры Apache может переключиться на HTTP/1.1 с помощью директивы Protocol http/1.1 и ужесточить LimitRequestFieldSize, хотя это лишь частичная защита. Для Microsoft IIS, Envoy и Cloudflare Pingora на момент публикации открытых патчей нет. Организациям, использующим эти продукты, рекомендуют отключать HTTP/2 там, где это возможно, либо размещать службы за обратным прокси-сервером или CDN, которые накладывают жесткие ограничения на количество заголовков в запросе, включая крошки Cookie.
Публикация указывает на системную проблему: комбинирование известных слабостей протокола, каждая из которых по отдельности считалась малозначительной, создает вектор атаки, способный вывести из строя значительную часть веб-инфраструктуры. Вендоры демонстрируют разную скорость реакции, что оставляет администраторов безопасности перед необходимостью временных обходных решений. Тенденция к атакам на уровне прикладных протоколов, использующих легитимные механизмы для отказа в обслуживании, вероятно, сохранится, а HTTP/2 Bomb - лишь очередная иллюстрация давно известного принципа: безопасность протокола определяется не сильнейшим звеном, а слабейшим в цепочке его реализаций.