Исследователи в области информационной безопасности выявили критическую уязвимость в реализациях протокола HTTP/2, получившую кодовое имя MadeYouReset (CVE-2025-8671). Техника позволяет злоумышленникам проводить разрушительные атаки на отказ в обслуживании (DoS) с минимальными ресурсами, обходя встроенные механизмы защиты протокола. Уязвимость затрагивает широкий спектр популярных веб-серверов и прокси-систем, включая продукты Apache Tomcat, Eclipse Jetty, Netty, Fastly, Varnish и сервисы Mozilla.
Суть уязвимости
MadeYouReset эксплуатирует фундаментальное расхождение между логикой спецификации HTTP/2 и её практической реализацией. Протокол предусматривает лимит одновременных запросов (SETTINGS_MAX_CONCURRENT_STREAMS), обычно устанавливаемый на уровне 100 потоков. Однако атакующий может принудить сервер к неограниченной обработке запросов, искусственно вызывая сброс (RST_STREAM) потоков на стороне сервера. Для этого злоумышленник сначала отправляет корректный HTTP-запрос, инициирующий полноценную обработку (парсинг заголовков, маршрутизацию, выделение ресурсов), а затем направляет специально сконструированные некорректные управляющие кадры. Это вынуждает сервер сбросить поток после начала обработки, но до завершения вычислений.
Ключевое отличие от атаки Rapid Reset
Техника напоминает уязвимость Rapid Reset (CVE-2023-44487), выявленную в 2023 году, но содержит принципиальное усовершенствование. В Rapid Reset клиент активно использовал кадры RST_STREAM для отмены запросов, что позволяло обходить лимиты параллелизма. Основная защита тогда заключалась в ограничении числа таких кадров. MadeYouReset обходит это ограничение: сброс инициируется сервером в ответ на нарушение протокола, спровоцированное атакующим. Клиенту не нужно отправлять ни одного RST_STREAM, что делает стандартные меры против Rapid Reset неэффективными.
Механизм атаки и последствия
Атакующий создаёт непрерывный поток запросов, каждый из которых проходит начальную стадию обработки, но сбрасывается до генерации ответа. Это устраняет зависимость от задержек сети (RTT) и позволяет исчерпывать ресурсы сервера со скоростью, ограниченной лишь пропускной способностью канала злоумышленника. Сервер продолжает расходовать CPU и память на разбор запросов, распаковку заголовков HPACK и маршрутизацию, даже после сброса потока. В случае использования обратных прокси (например, Varnish, Fastly) нагрузка передаётся на backend-системы, так как запрос успевает перенаправляться до сброса.
Эксперименты подтвердили, что атака приводит к полному отказу обслуживания у большинства уязвимых систем, а в ряде случаев - к аварийному завершению работы из-за исчерпания памяти. Особую опасность представляет асимметрия затрат: отправка запросов требует минимальных ресурсов от злоумышленника, тогда как обработка каждого из них сервером - значительных.
Подверженные и защищённые системы
Уязвимость подтверждена в:
- Apache Tomcat (CVE-2025-48989)
- Eclipse Jetty (CVE-2025-5115)
- Netty (CVE-2025-55163)
- Fastly, Varnish, lighttpd
- Сервисы Mozilla
- Zephyr RTOS
Не подвержены риску: Apache HTTP Server, Apache Traffic Server, Node.js, LiteSpeed и HAProxy. Состояние nginx остаётся неопределённым - исследования продолжаются.
Рекомендации и координация
Исследователи под руководством профессора Анат Бремлер-Барр (Университет Тель-Авива) совместно с CERT/CC (Кристофер Каллен) координируют устранение уязвимости с более чем 100 вендорами. Предварительные меры включают:
- Анализ обработки управляющих кадров в HTTP/2-стеке.
- Внедрение проверок на корректность последовательности кадров.
- Ограничение числа частично обработанных запросов на соединение.
Заключение
MadeYouReset подчёркивает сохраняющиеся проблемы в реализации сложных протоколов, где формальное соблюдение спецификации RFC не гарантирует устойчивости к злонамеренным сценариям. Уязвимость уже внесена в базы данных киберугроз, и администраторам рекомендуется отслеживать обновления для затронутых систем. Исследование проведено при поддержке Imperva, а полный технический анализ будет опубликован в ближайшее время.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2025-8671
- https://galbarnahum.com/posts/made-you-reset-intro
- https://kb.cert.org/vuls/id/767506
- https://varnish-cache.org/security/VSV00017.html
- https://www.fastlystatus.com/incident/377810
- https://github.com/h2o/h2o/commit/4729b661e3c6654198d2cc62997e1af58bef4b80
- https://support2.windriver.com/index.php?page=security-notices
- https://www.suse.com/support/kb/doc/?id=000021980
- https://gitlab.isc.org/isc-projects/bind9/-/issues/5325