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.
{
"url": "https://pkg.go.dev/vuln/GO-2024-2963",
"review_status": "REVIEWED"
}{
"imports": [
{
"path": "net/http",
"symbols": [
"Client.CloseIdleConnections",
"Client.Do",
"Client.Get",
"Client.Head",
"Client.Post",
"Client.PostForm",
"Get",
"Head",
"Post",
"PostForm",
"Transport.CancelRequest",
"Transport.CloseIdleConnections",
"Transport.RoundTrip",
"persistConn.readResponse"
]
}
]
}