Go net/http Expect:100-continue mishandling before 1.20.7 leads to DDoS
CVE-2024-24791 Published on July 2, 2024
Denial of service due to improper 100-continue handling in net/http
The net/http HTTP/1.1 client mishandled the case where a server responds to a request with an "Expect: 100-continue" header with a non-informational (200 or higher) status. This mishandling could leave a client connection in an invalid state, where the next request sent on the connection will fail. An attacker sending a request to a net/http/httputil.ReverseProxy proxy can exploit this mishandling to cause a denial of service by sending "Expect: 100-continue" requests which elicit a non-informational response from the backend. Each such request leaves the proxy with an invalid connection, and causes one subsequent request using that connection to fail.
Vulnerability Analysis
CVE-2024-24791 can be exploited 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-2024-24791
You can be notified by email with stack.watch whenever vulnerabilities like CVE-2024-24791 are published in these products:
Affected Versions
Go standard library net/http:- Before 1.21.12 is affected.
- Version 1.22.0-0 and below 1.22.5 is affected.
- Before 1.21.12 is affected.
- Version 1.22.0-0 and below 1.22.5 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.