SpiderLabs Blog

HTTP/2 Rapid Reset

Written by Medz Barao | Oct 13, 2023 5:05:15 PM

A recent vulnerability tracked as Rapid Reset (CVE-2023-44487) in the HTTP/2 protocol was recently disclosed by researchers and vendors. It was exploited in the wild from August 2023 to October 2023.

 

The issue arises from the HTTP/2 protocol's ability to cancel streams using an RST_STREAM frame, which can be misused to overload servers by initiating and quickly canceling numerous streams, circumventing the server's concurrent stream limit.

 

The key feature of HTTP/2, multiplexing requests over a single TCP connection, is exploited in this attack, allowing an indefinite number of requests in flight on each connection. This barrage of HTTP/2 requests can effectively take down targeted websites by overwhelming their ability to respond to new incoming requests, making it a significant security concern.

Figure 1. HTTP/1.1 and HTTP/2 request and response pattern (Courtesy of Google)

 

A request stream that is canceled rapidly transitions through the stream lifecycle. The client's HEADERS with the END_STREAM flag set to 1, transitions the state from idle to open, to half-closed, then RST_STREAM immediately causes a transition from half-closed to closed.

Figure 2. Requests stream diagram (Courtesy of Cloudflare)

 

According to CloudFlare “When a client cancels a stream, it instantly gets the ability to open another stream in its place and can send another request immediately. This is the crux of what makes CVE-2023-44487 work.”

 

This vulnerability was used in record-breaking distributed denial of service (DDoS) attacks on Amazon Web Services (AWS), Cloudflare, and Google in late August 2023. A DDoS attack is a cyber threat that floods a target with excessive traffic, often using a botnet, disrupting services. Its history traces back to early internet disruptions. Motives can include extortion and hacktivism.

 

The attack technique, known as HTTP/2 Rapid Reset, leverages the flaw in HTTP/2 to carry out DDoS attacks by sending and canceling requests in rapid succession, ultimately overwhelming the server without reaching its configured threshold. These attacks peak at millions of requests per second.

 

A tool was published to detect CVE-2023-44487, which operates in a non-invasive manner, primarily checking if a website exhibits a vulnerability. The tool verifies whether the web server accepts HTTP/2 requests without any form of downgrading. If this is the case, the tool proceeds to initiate a connection stream and promptly resets it. A web server is considered vulnerable if it accepts the creation and resetting of a connection stream. In cases where the server only accepts HTTP/2 requests but experiences a failed stream connection, vulnerability may still exist if server-side capabilities are enabled.

Figure 3. Command-line output of enumerating vulnerable assets

 

Defense and mitigations for DDoS attacks involve hardware, software, and collaboration with ISPs. Penetration testing can find vulnerabilities, while continuous detection and patching are crucial for proactive security against DDoS and other evolving cyber risks.

 

References: