HTTP/2 Bomb: новий виклик для веб-серверів

Атака HTTP/2 Bomb: новий виклик для веб-серверів

Недавно виявлена атака відмови в обслуговуванні, відома як HTTP/2 Bomb, вплинула на кілька основних веб-серверів і реалізації HTTP/2, зокрема Nginx, Apache HTTP Server, Microsoft IIS, Envoy та Cloudflare Pingora.

Опис атаки HTTP/2 Bomb

Дослідники з Calif оприлюднили цю уразливість, описавши її як віддалену атаку, що націлюється на стандартні конфігурації HTTP/2. На відміну від традиційних атак відмови в обслуговуванні, HTTP/2 Bomb використовує стандартну поведінку протоколу, змушуючи сервери виділяти та зберігати великі обсяги пам’яті.

Техніки атаки HTTP/2 Bomb

Атака використовує дві техніки. Перша — це експлуатація HPACK, компресії заголовків HTTP/2, шляхом відправлення малих посилань на заголовки, які розширюються в значніші виділення пам’яті на стороні сервера. Друга — використання управління потоком HTTP/2 для затримки відповідей, заважаючи серверу звільняти виділену пам’ять.

Вплив атаки на сервери

Це дозволяє клієнту з обмеженою пропускною здатністю споживати значний обсяг оперативної пам’яті на вразливому сервері. Згідно з результатами тестів, 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 дозволяє розділяти заголовки Cookie на окремі поля, і в підданих уразливостям випадках вони не були правильно враховані в межах лімітів полів запиту.

Рішення для Apache та Nginx

Проблема з Apache httpd відстежується як CVE-2026-49975. Виправлення доступне в mod_http2 2.0.41, де заголовки куків враховуються в LimitRequestFields. Для Nginx проблема була вирішена в версії 1.29.8 шляхом введення директиви max_headers, яка за замовчуванням становить 1000.

Рекомендації адміністраторам серверів

Для розгортань Apache httpd, які не можуть оновити до виправленої версії mod_http2, рекомендоване рішення — відключити HTTP/2, встановивши Protocols http/1.1. Зниження LimitRequestFieldSize також може зменшити вплив, але це лише часткове рішення, оскільки атака може множитися через потоки та з’єднання.

Для Microsoft IIS, Envoy та Cloudflare Pingora на момент розкриття підтвердженого патча не було. Пізніше Calif повідомив, що Envoy випустив патчі 3 червня, хоча перевірка триває.

Адміністратори публічних HTTP/2 сервісів повинні оцінити, чи їх стек підлягає уразливості, застосувати доступні оновлення якнайшвидше та забезпечити дотримання лімітів кількості заголовків запитів. Якщо неможливо вжити термінових заходів, відключення HTTP/2 — це найбезпечніше тимчасове рішення.