Уязвимость HTTP/2 CONTINUATION Flood угрожает веб-серверам DoS-атаками

Уязвимость HTTP/2 CONTINUATION Flood угрожает веб-серверам DoS-атаками

Как показало новое исследование специалиста по кибербезопасности Бартека Новотарски, фрейм CONTINUATION в протоколе HTTP/2 можно использовать для проведения атак вида DoS (отказ в обслуживании). Вектор получил имя HTTP/2 CONTINUATION Flood.

Новотарски сообщил о своей находке представителям Координационного центра CERT 25 января 2024 года. Сам центр на днях опубликовал по этому поводу следующее сообщение:

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

«Тем не менее эти фреймы всё равно будут обрабатываться и декодироваться сервером, приводят к сбою в работе из-за нехватки памяти».

HTTP/2, как и предыдущая версия — HTTP/1, использует поля заголовков в запросах и ответах. Эти поля могут содержать списки, которые обрабатываются и разбиваются на блоки заголовков, а последние затем делятся на фрагменты и передаются внутри HEADER. Это и называется фреймами CONTINUATION.

Последний фрейм должен содержать флаг END_HEADERS, что даёт понять удалённой точке: это конец блока заголовка. Как отметил Новотарски, CONTINUATION Flood представляет собой класс уязвимостей в нескольких реализациях протокола HTTP/2.

И этот вектор атаки представляет большую угрозу, чем Rapid Reset, о которой рассказывали в октябре 2023 года.

«Одно устройство (в некоторых случаях это может быть одно TCP-соединение или несколько фреймов) может привести к недоступности сервера — начиная от сбоя, заканчивая заметным снижением производительности», — объясняет Новотарски.

Проблема затрагивает: