UBUNTU-CVE-2024-24791
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.
02 / AFFECTED SOFTWARE
Affected packages
1 explicit affected versions
2 explicit affected versions
10 explicit affected versions
8 explicit affected versions
2 explicit affected versions
5 explicit affected versions
10 explicit affected versions
9 explicit affected versions
2 explicit affected versions
2 explicit affected versions
3 explicit affected versions
1 explicit affected versions
5 explicit affected versions
7 explicit affected versions
2 explicit affected versions
3 explicit affected versions
2 explicit affected versions
11 explicit affected versions
8 explicit affected versions
4 explicit affected versions
1 explicit affected versions
4 explicit affected versions
2 explicit affected versions
2 explicit affected versions
3 explicit affected versions
4 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
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.
05 / REFERENCES
Further evidence
- https://go.dev/cl/591255
- https://go.dev/issue/67555
- https://groups.google.com/g/golang-dev/c/t0rK-qHBqzY/m/6MMoAZkMAgAJ
- https://pkg.go.dev/vuln/GO-2024-2963
- https://ubuntu.com/security/CVE-2024-24791
- https://ubuntu.com/security/notices/USN-7081-1
- https://ubuntu.com/security/notices/USN-7109-1
- https://ubuntu.com/security/notices/USN-7111-1
- https://www.cve.org/CVERecord?id=CVE-2024-24791