
PoC для CVE-2025-53020 - HPACK bombing для Apache HTTPD.
Proof of concept, демонстрирующий CVE-2025-53020, уязвимость исчерпания памяти в реализации HTTP/2 в Apache httpd, которую я обнаружил в середине 2025 года.
📖 Подробный разбор: galbarnahum.com/posts/apache-httpd-cve-2025-53020
Apache httpd уязвим к атаке типа «отказ в обслуживании» через обработку HTTP/2-заголовков. Уязвимость существует из-за ненужного дублирования памяти при обработке повторяющихся имён заголовков в HTTP/2-запросах.
h2 — библиотека протокола HTTP/2tqdm — индикатор прогресса для визуализации атакиpip install h2 tqdm
python poc.py --url https://target.example.com/
| Аргумент | По умолчанию | Описание |
|---|---|---|
--url | обязательный | Целевой URL (например, https://example.com/path) |
--header-name-length | 4064 | Длина имени заголовка (максимум: 4064) |
--header-reps | 2063 | Количество повторений заголовка на запрос (рекомендуемый максимум: 2063) |
--requests-per-batch | 1 | Количество запросов в одном пакете |
--batches | 100 | Количество отправляемых пакетов |
--delay | 0 | Задержка между пакетами в секундах |
--num-headers-to-repeat | 1 | Количество различных имён заголовков для создания (используются символы a, b, c и т. д.) |
Стандартная атака на HTTPS-цель:
python poc.py --url https://target.com/api/endpoint
Атака с нестандартными настройками заголовков:
python poc.py --url http://localhost:8080/test --header-reps 1000 --batches 200
Атака с несколькими различными именами заголовков:
python poc.py --url https://target.com --num-headers-to-repeat 3 --header-name-length 3000
Более медленная атака с задержкой между пакетами:
python poc.py --url https://target.com --delay 0.5 --batches 500
PoC включает патч для HPACK-энкодера библиотеки h2, корректно обрабатывающий пустые значения заголовков. Это исправляет ошибку, при которой энкодер некорректно индексировал заголовки с пустыми строковыми значениями (трактуя "" как ложное значение вместо проверки на None).
--num-headers-to-repeat > 1 длина имени заголовка должна быть < 4000Версии Apache httpd, уязвимые к CVE-2025-53020. Обратитесь к официальным бюллетеням безопасности Apache для получения информации о конкретных версиях и исправлениях.
⚠️ Этот инструмент предоставляется только для образовательных целей и санкционированного тестирования безопасности.
Этот проект предназначен для исследовательских целей в области безопасности. Используйте ответственно и этично.