GO-2024-2963

Source
https://pkg.go.dev/vuln/GO-2024-2963
Import Source
https://vuln.go.dev/ID/GO-2024-2963.json
JSON Data
https://api.osv.dev/v1/vulns/GO-2024-2963
Aliases
Published
2024-07-02T20:11:00Z
Modified
2024-07-15T22:26:59.152Z
Summary
Denial of service due to improper 100-continue handling in net/http
Details

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.

References
Credits
    • Geoff Franks

Affected packages

Go / stdlib

Package

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
1.21.12
Introduced
1.22.0-0
Fixed
1.22.5

Ecosystem specific

{
    "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"
            ]
        }
    ]
}