This is an older essay or practical note. Its reference date is retained from the original entry; use current vendor guidance for product versions and security updates.
In August 2023, the internet faced a tsunami. Cloudflare reported an attack peaking at 201 million requests per second. It was the largest DDoS attack in history, and it didn't use a massive botnet. It exploited a flaw in the fundamental design of the web: HTTP/2.
Executive Summary
HTTP/2 Rapid Reset (CVE-2023-44487) is a zero-day vulnerability in the HTTP/2 protocol. It allows an attacker to generate an enormous amount of work for a server while expending very little effort themselves, leading to a Denial of Service (DoS).
This asymmetry allowed attackers to generate traffic volumes 3x larger than the previous world record, using a botnet only 1/10th the size. It affected every major web server: Nginx, Apache, IIS, and Cloudflare/AWS/Google infrastructure.
The Protocol Flaw: Multiplexing Gone Wrong
HTTP/2 introduced a feature called Stream Multiplexing. In HTTP/1.1, you had to open a new TCP connection for every file you wanted to download (or wait in line). In HTTP/2, you can send multiple requests (streams) over a single TCP connection simultaneously.
HTTP/2 also introduced the RST_STREAM frame. This allows a client to say, "Actually, I don't need that image anymore, cancel it." The server then stops processing that stream to save resources.
The Attack
The Rapid Reset attack involves a client opening hundreds of streams at once and then immediately sending a RST_STREAM for all of them.
Client -> HEADERS (Stream 1)
Client -> HEADERS (Stream 2)
Client -> HEADERS (Stream 3)
...
Client -> RST_STREAM (Stream 1)
Client -> RST_STREAM (Stream 2)
Client -> RST_STREAM (Stream 3)
The server does the work of allocating memory and parsing the request headers for Stream 1, but before it can even send a byte of data back, the client cancels it. This completely bypasses the server's "Concurrent Stream Limit" because as soon as you cancel Stream 1, you are allowed to open Stream 101. The attacker can loop this millions of times per second.
Vendor Response
The tech giants (Google, AWS, Cloudflare) kept this secret for weeks while they patched their edge networks. When they disclosed it in October, they revealed the scale of the threat.
It was a rare instance of industry-wide collaboration. Because the flaw was in the protocol definition (RFC 7540), virtually every web server in the world was vulnerable by default.
Mitigation
You cannot "fix" the protocol without breaking backward compatibility. The fix involves implementing "flood protection" logic in the server software:
- Limit RST_STREAM rates: If a client cancels too many streams too quickly, drop the entire TCP connection (GoAway frame).
- Patch Management: Update Nginx to 1.25.3+ or Apache Tomcat to 10.1.14+.
The Future of Protocols
This incident highlights the complexity of modern standards. HTTP/3 (QUIC) is even more complex, running over UDP. Complexity is the enemy of security. As we strive for milliseconds of performance gain, we often introduce logical flaws that attackers exploit for massive disruption.
