Go HTTP/2 CONTINUATION frame DoS by excessive header parsing
CVE-2023-45288 Published on April 4, 2024
HTTP/2 CONTINUATION flood in net/http
An attacker may cause an HTTP/2 endpoint to read arbitrary amounts of header data by sending an excessive number of CONTINUATION frames. Maintaining HPACK state requires parsing and processing all HEADERS and CONTINUATION frames on a connection. When a request's headers exceed MaxHeaderBytes, no memory is allocated to store the excess headers, but they are still parsed. This permits an attacker to cause an HTTP/2 endpoint to read arbitrary amounts of header data, all associated with a request which is going to be rejected. These headers can include Huffman-encoded data which is significantly more expensive for the receiver to decode than for an attacker to send. The fix sets a limit on the amount of excess header frames we will process before closing a connection.
Vulnerability Analysis
CVE-2023-45288 is exploitable with network access, and does not require authorization privileges or user interaction. This vulnerability is considered to have a low attack complexity. The potential impact of an exploit of this vulnerability is considered to have no impact on confidentiality and integrity, and a high impact on availability.
Products Associated with CVE-2023-45288
You can be notified by email with stack.watch whenever vulnerabilities like CVE-2023-45288 are published in these products:
Affected Versions
Go standard library net/http:- Before 1.21.9 is affected.
- Version 1.22.0-0 and below 1.22.2 is affected.
- Before 0.23.0 is affected.
- Before 1.21.9 is affected.
- Version 1.22.0-0 and below 1.22.2 is affected.
- Before 0.23.0 is affected.
Exploit Probability
EPSS (Exploit Prediction Scoring System) scores estimate the probability that a vulnerability will be exploited in the wild within the next 30 days. The percentile shows you how this score compares to all other vulnerabilities.