The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимость в реализациях протокола HTTP/2, упрощающая проведение DoS-атак

14.08.2025 09:09

Представлена новая техника атаки на реализации протокола HTTP/2, упрощающая проведение атак для вызова отказа в обслуживании через исчерпание ресурсов сервера. Уязвимость получила кодовое имя MadeYouReset и позволяет через манипуляции управляющими кадрами HTTP/2 наводнить сервер большим количеством запросов в обход установленных ограничений.

Суть проблемы в том, что клиент может создать очень большое число одновременно обрабатываемых потоков, независимо от лимита SETTINGS_MAX_CONCURRENT_STREAMS, сбрасывая каждый поток на начальном этапе. Подобный сброс приводит к тому, что для отправки нового запроса в установленном соединении HTTP/2 клиенту не требуется жать ответа от сервера и можно сразу направить большой непрерывный поток запросов, насколько позволяет пропускная способность канала связи.

Клиент перестаёт зависеть от задержек между отправкой запроса и получением ответа (RTT, round-trip time) и может провести атаку с минимальными накладными расходами, при том что сервер продолжает тратить ресурсы на обработку поступающих запросов. Например, сервер осуществляет выделение структур данных под новые потоки, разбор запроса, распаковку заголовка и сопоставление URL с ресурсом. При атаке на обратные прокси, атака может распространиться на бэкенды, на которые прокси успеет перенаправить запрос до его сброса.

Уязвимость напоминает ранее известную проблему Rapid Reset (CVE-2023-44487) и вызвана расхождением логики сброса потоков, определённой в спецификации протокола HTTP/2 и реализованной в конечных продуктах. В спецификации предусмотрена возможность сброса потока клиентом и сервером в любой момент, но во многих реализациях HTTP/2-серверов после подобного сброса запрос продолжает обрабатываться. Ключевым отличием новой атаки является то, что сброс обработки запроса осуществляется по инициативе сервера, а не через отправку клиентом кадра с флагом RST_STREAM.

Сброс по инициативе сервера происходит при поступлении некорректных запросов, но подобные запросы отбрасываются сразу без начала их полноценной обработки и без передачи бэкенду. Для того, чтобы добиться полного цикла обработки запроса атакующий вначале может отправить корректный HTTP-запрос, но следом за ним передать некорректную последовательность управляющих кадров HTTP/2. Подобная активность приведёт к тому, что сервер начнёт полноценно обрабатывать запрос, но потом из-за ошибки при обработке следом идущих кадров сбросит поток (переведёт поток с корректным запросом в состояние RST_STREAM).

Наличие проблемы подтверждено в HTTP-серверах Apache Tomcat, Netty, Eclipse Jetty, Fastly, varnish, lighttpd, Zephyr RTOS. Проблема проявляется также на сайтах и серверных сервисах Mozilla. Apache httpd, Apache Traffic Server, Node.js, LiteSpeed и HAProxy проблеме не подвержены. Статус наличия уязвимости в nginx не определён.

  1. Главная ссылка к новости (https://kb.cert.org/vuls/id/76...)
  2. OpenNews: Уязвимость в предлагаемой в Qt реализации протокола HTTP/2
  3. OpenNews: Уязвимость в протоколе HTTP/2, задействованная в крупнейшей DDoS-атаке
  4. OpenNews: Атака Continuation flood, приводящая к проблемам на серверах, использующих HTTP/2.0
  5. OpenNews: RangeAmp - серия атак на CDN, манипулирующая HTTP-заголовком Range
  6. OpenNews: Новая атака на системы фронтэнд-бэкенд, позволяющая вклиниться в запросы
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63726-http2
Ключевые слова: http2
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (76) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:28, 14/08/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –17 +/
     
     
  • 2.2, Аноним (2), 10:41, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 3.3, Голдер и Рита (?), 10:44, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 4.14, Аноним (14), 11:32, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 3.5, L10N (ok), 10:51, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 4.10, Жироватт (ok), 11:02, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
     
  • 5.12, L10N (ok), 11:07, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 6.22, Аноним (22), 11:57, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 7.44, L10N (ok), 14:27, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.4, L10N (ok), 10:49, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 3.42, Аноним (42), 14:08, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +2 +/
     
     
  • 4.50, L10N (ok), 14:48, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 2.6, Аноним (-), 10:53, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 3.7, L10N (ok), 10:56, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 4.15, Аноним (14), 11:38, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 5.17, L10N (ok), 11:43, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.8, Жироватт (ok), 10:57, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 4.9, L10N (ok), 10:59, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 5.11, Жироватт (ok), 11:04, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 6.13, L10N (ok), 11:08, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 7.23, Жироватт (ok), 11:59, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 8.27, Аноним (-), 12:20, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 9.31, Аноним (-), 12:49, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 8.45, L10N (ok), 14:30, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 7.25, Аноним (22), 12:17, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 8.48, L10N (ok), 14:43, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.28, Аноним (28), 12:37, 14/08/2025 Скрыто ботом-модератором     [к модератору]
  • +3 +/
     

  • 1.16, Аноним (14), 11:40, 14/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А как пели про хттп/2, как его впи... внедряли.
     
     
  • 2.18, L10N (ok), 11:45, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Уязвимость не в протоколе, а в реализациях. Читайте внимательно :)
     
     
  • 3.37, Филя (?), 13:50, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А реализации кто-нибудь стандаризирует? Апачи Фаундейшен скажем. FIPS стандартизирует openssl для гос. сектора например, фстэк у вовы какие-то сетевые устройства перед использованием в гос. секторе и тп, в белоруссии вот ОАЦ есть, тоже этим занимаются. Мб знаете, не?
     
     
  • 4.49, L10N (ok), 14:45, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Реализации могут сертифицировать. Например, есть ГОСТы по алгоритмам шифрования. Типа там "Кузнечик", "Магма". А когда кто-то их реализует в своих продуктах, то ФСБ потом может сертифицировать для применения в госсекторе. Но в общем случае стандартизуется протокол/алгоритм, а вот реализовывать можно по-разному.
     
  • 3.54, Аноним (54), 14:58, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Выходы за границы буфера тоже не в спецификации, а в реализации. Думай.
     
     
  • 4.57, L10N (ok), 15:05, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да, в реализации. И что? От этого уязвимости не в реализации, а в том, что реализуется? :)
     
     
  • 5.76, Аноним (76), 21:33, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Что нормальный протокол и нормальный безопасный язык нельзя уязвимо реализовать.
     
     
  • 6.82, L10N (ok), 22:32, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это априори неверный тезис. Представьте себе простейший протокол (хоть вырожденный донельзя) и подумайте, сколькими способами можно его испортить плохой реализацией.
     
  • 3.68, 12yoexpert (ok), 18:54, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    а теперь сравни спецификацию http 1.1 и http 2 и хорошенько подумай
     
     
  • 4.79, L10N (ok), 22:26, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, впрямую говорить об обратной совместимости нельзя. Скорее речь о концепциях, более привычных большинству. Замечание резонное.
     
     
  • 5.83, 12yoexpert (ok), 00:18, 15/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    при чём тут обратная совместимость, концепция или привычки? попробуй подумать ещё
     
  • 2.19, Аноним (19), 11:45, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так скажи спасибо Гуглу за это. На моей памяти несколько разрабов, связанных с реализацией HTTP, просто на мат переходили, когда речь заходила о HTTP/2.
     
     
  • 3.20, L10N (ok), 11:46, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ниасилили?
     
     
  • 4.47, Анонирм (?), 14:42, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А вы осилили реализацию этого протокола? Или просто так пишите
     
     
  • 5.52, L10N (ok), 14:51, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А что там принципиально такого, что невозможно осилить? Протокол как протокол. Конкретно этот не осиливал, а когда в системной аналитике работал по сетевой безопасности, читал различные RFC в оригинале без словаря. И понимал, что там написано, ибо в разрабатываемом файерволле их поддержка реализовывалась. Ну, да, современные протоколы могут быть более сложными, чем более ранние. Но принципиально-то что изменилось? Есть спецификация протокола, ей можно следовать. Не бином Ньютона.
     
     
  • 6.53, Анонирм (?), 14:54, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Конкретно этот не осиливал

    Вот когда осилите, тогда и приходите с критикой. А то получается что реальные разработчики были не в восторге, а вы их безосновательно критикуете, якобы не осилили. С себя начните.

     
     
  • 7.56, L10N (ok), 15:04, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, одни осиливают, другие не осиливают. Я думал, вы напишете, что конкретно этот протокол отличает от других. А вы пытаетесь оценивать меня. Конечно, HTTP/2 сложнее HTTP. Понятно, почему. Посмотрите, сколько лет прогресса между ними.
     
     
  • 8.59, Анонирм (?), 16:13, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А чего ожидали, начав ветку с наброса про не осилили Грамотного технического ... текст свёрнут, показать
     
     
  • 9.63, L10N (ok), 17:17, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это был неявный вопрос о том, а на что именно ругались Может, что-то неудобно и... текст свёрнут, показать
     
  • 8.70, Аноним (70), 19:10, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    HTTP 2 был создан с одной единственной целью - помочь CDN-кам разрулить по сути ... текст свёрнут, показать
     
     
  • 9.80, L10N (ok), 22:28, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо за подробности Стал лучше понимать неудобства ... текст свёрнут, показать
     
  • 7.62, L10N (ok), 17:14, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    :)) Посмотрел, кто разработал RFC по HTTP/2. M. Thomson, Ed., Mozilla, C. Benfield, Ed., Apple Inc.
     
  • 6.65, nuclight (??), 17:37, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Принциипальные там архитектурные проблемы - в данном случае, вместо постоянно открытых потоков, по каждому из которых можно несколько запросов (аналоги отдельных TCP, как в SCTP собсно и сделали), они постоянно открывают и закрывают новые потоки. Эту же херь унаследовали в QUIC. Наличие спецификации и даже её осиливания еще вовсе не означает, что она хорошая.

    (Читать RFC без словаря нынче суперскилл? ОК, так я их тогда пишу без словаря...)

     
     
  • 7.67, L10N (ok), 18:07, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, так понятнее.

    >они постоянно открывают и закрывают новые потоки

    Это некоторый архитектурный компромисс для обратной совместимости и на основе анализа частоты use cases. Скорее, оптимизация для масс. В целом выбор верный, но в некоторых сценариях это неэффективно. Частично было решено в HTTP/3. Значит, в вашем случае разрабатывалось что-то, где это имеет значение, например, сильно влияет на производительность. Т.е. это не архитектурная проблема, а что-то вроде "не все вписались в рынок".

    >(Читать RFC без словаря нынче суперскилл? ОК, так я их тогда пишу без словаря...)

    Да нет, просто сказал, что была работа, связанная с изучением RFC-шек. Просто чтобы показать, что можно пообщаться на одном примерно языке. Респект за работу :)

     
     
  • 8.71, Аноним (70), 19:15, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У HTTP 2 нету обратной совместимости - это отдельный от HTTP 1 протокол По сути... текст свёрнут, показать
     
     
  • 9.81, L10N (ok), 22:30, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Во многом да, но почему-то не все реализации подвержены этой проблеме Т е это ... текст свёрнут, показать
     
  • 3.60, Аноним (60), 16:14, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > несколько разрабов […] просто на мат переходили

    Ну это проблемы с воспитанием тех разрабов. А своё-то мнение у тебя есть? Или тебе его матюки очередного быдла заменяют?

     
     
  • 4.85, Аноним (85), 00:46, 15/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну это проблемы с воспитание
    > очередного быдла

    Я бы сказал, воспитанием в данном сообщении вообще даже не пахнет. Псевдоинтеллигенция...

     
  • 3.61, Аноним (-), 16:33, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну так скажи спасибо Гуглу за это.

    Спасибо гугл! Без тебя бы сидели в пещерах))

    > На моей памяти несколько разрабов, связанных с реализацией HTTP, просто на мат переходили, когда речь заходила о HTTP/2.

    О, я помню дед матюкался, когда ему показали машину с автоматом.
    Типа понавыдумаыли ***ни, вот на Волге - коробас нормальный, а этот что? даже в гараже не починишь.
    А потом начал задвигать, что Настоящий Водитель умеет тормозить прерывисто и эти ваши АБС для лопухов.


     

  • 1.34, Аноним (34), 13:28, 14/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Статус наличия уязвимости в nginx не определён.

    Так определяйте. Это самый популярный сервер в интернете, на минуту, а они про какой-то сраный апач пишут.

     
     
  • 2.35, Аноним (35), 13:36, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Куда спешить, потом цапцарапнут готовое решение у апача.
     
  • 2.36, Аноним (36), 13:49, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >HAProxy проблеме не подвержен

    Ключевые слова. А что там на бэкэнде используется значения не имеет.

     
     
  • 3.72, Аноним (70), 19:17, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да здравствуют Desync-атаки на "да пофигу что там за HTTP/1.1 сервер на бэкенде"!
     
  • 2.66, 1 (??), 18:06, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.suse.com/fr-fr/security/cve/CVE-2025-8671.html

    ну если верить этому то nginx в различных версиях SUSE -- Not affected

     
     
  • 3.84, Отсутствуют данные в поле Name (?), 00:37, 15/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А можно верить SUSE?
     
     
  • 4.86, 1 (??), 00:53, 15/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    а кто знает?
     

  • 1.38, Аноним (38), 13:50, 14/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >подтверждено в HTTP-серверах Apache Tomcat, Netty, Eclipse Jetty, Fastly, varnish

    Все какие-то "решения" серверов приложений. Настоящие серверы хттп не подвержены.

    >во многих реализациях HTTP/2-серверов после подобного сброса запрос продолжает обрабатываться

    Позорище, конечно. Ну ничего - в корпоративной разработке стыд испытывать некому.

     
     
  • 2.58, Аноним (58), 15:17, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Что в очередной раз подтверждает: не надо любые сервера приложений голой ж... в интернет выставлять. И реализация HTTP/2 в них не нужна, для связи с реверс-прокси этот протокол бесполезен.
     

  • 1.41, Буквально (?), 14:06, 14/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    "Мы хотим избавиться от задержек и сделаем протокол с обработкой запроса сразу по приходу первого же пакета".
    Что же могло пойти не так?
     
     
  • 2.43, Аноним (28), 14:25, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    w3techs после новостей показал увеличение доли http/3 - что как бы намекает .
     
  • 2.55, Аноним (54), 14:59, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Куча приложений что рассчитывают на уязвимое поведение поломаются.
     
  • 2.73, Аноним (70), 19:19, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Туда-же "TCP с TLS переоткрывать дорого, ща мы в один поток кучу сообщений запихаем".
     
  • 2.74, Oe (?), 19:20, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нужно срочно экономить количество запросов, а то лишние 10 килобайт трафика жалко. И плевать, что каждый день радовой обладатель смартфона выкачивает терабайт обновлений из гугл плей.
     
     
  • 3.75, Аноним (75), 20:37, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > каждый день радовой обладатель смартфона выкачивает

    ничо он не выкачивает, интернет выключен.

     
  • 3.77, Аноним (76), 21:34, 14/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    По хттп 1
     
  • 3.87, 1 (??), 00:54, 15/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    прецыеличение на 4-5, а то и 6 порядков
     
     
  • 4.88, 1 (??), 00:55, 15/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    преувелечение
     

  • 1.89, Аноним (89), 01:47, 15/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    network.http.http2.enabled -> false
    Давно так сделал и всем советую, HTTP2 мертворождённый SPDY.
     
     
  • 2.90, Аноним (28), 03:59, 15/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А ещё там какой то подозрительный шнур к розетке тянется .
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру