HTTP/2 позволяет передавать поля заголовков как в секции заголовка, так и в секции трейлера, которые могут быть разделены на блоки заголовков и передаваться в нескольких фрагментах. В нескольких реализациях HTTP/2 была обнаружена уязвимость, которая не ограничивает количество фреймов CONTINUATION, отправляемых в рамках одного потока, что приводит к аварийному завершению работы из-за нехватки памяти (OOM). Злоумышленник может воспользоваться этим, отправляя поток фреймов CONTINUATION без установки флага END_HEADERS, заставляя сервер обрабатывать и декодировать фреймы, что приводит к аварийному завершению работы из-за нехватки памяти.
Эта уязвимость затрагивает различные реализации, в том числе Node.js, Envoy, Tempesta FW, amphp/http, пакеты Go net/http и net/http2, Apache Httpd, Apache Traffic Server и кодек HTTP/2 Envoy. Эксплуатация этой уязвимости может привести к атакам типа "отказ в обслуживании" (DoS) против серверов, использующих уязвимые реализации.
Важно отметить, что анализ входящего вредоносного трафика, использующего эту уязвимость, может быть сложным, поскольку HTTP-запрос не завершен должным образом, что требует анализа необработанного HTTP-трафика для выявления атаки.
kb.cert.org
VU#421644: HTTP/2 CONTINUATION frames can be utilized for DoS attacks
Create attached notes ...
