CVE-2022-41717: Excessive memory growth in net/http and golang.org/x/net/http2
An attacker can cause excessive memory growth in a Go server accepting HTTP/2 requests. HTTP/2 server connections contain a cache of HTTP header keys sent by the client. While the total number of entries in this cache is capped, an attacker sending very large keys can cause the server to allocate approximately 64 MiB per open connection.
Other sources
Excessive memory growth in net/http and golang.org/x/net/http2
— Microsoft
Golang Go is vulnerable to a denial of service, caused by a flaw when handling HTTP/2 requests in the Go server. By sending a specially-crafted keys, a remote attacker could exploit this vulnerability to cause excessive memory growth, and results in a denial of service condition.
— IBM
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/golang.org/x/netto a version that resolves this vulnerability.Fixed in 0.4.0 - Upgrade
Upgrade
go/golang.org/x/net/http2to a version that resolves this vulnerability.Fixed in 0.4.0 - Upgrade
Upgrade
debian/golang-1.19to a version that resolves this vulnerability.Fixed in 1.19.8-2 - Upgrade
Upgrade
debian/golang-golang-x-netto a version that resolves this vulnerability.Fixed in 1:0.7.0+dfsg-1Fixed in 1:0.27.0-1 - Upgrade
Upgrade
redhat/golangto a version that resolves this vulnerability.Fixed in 1.19.4 - Upgrade
Upgrade
redhat/golangto a version that resolves this vulnerability.Fixed in 1.18.9 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 3.7.0-1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 25.0.3-1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 24.0.9-1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 2.45.4-1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 10.24.0-1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.55.0-20 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.8.17-1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.17.13-2,1.18.8-2,1.21.6-1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 2.13.0-2 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 3.6.2-2 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 2.37.9-1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.21.6-1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.18.8-3 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.18.8-2 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.17.13-2 - Upgrade
Upgrade
Golang Goto a version that resolves this vulnerability.Patch GO-2022-1144 - Compensating control
Mitigate the denial-of-service risk from excessive HTTP/2 header key allocations by limiting exposure to untrusted clients (e.g., restrict/segment network access to the Go server and/or apply rate limiting at a reverse proxy/WAF) so attackers cannot open many HTTP/2 connections and send very large header keys.
Event History
Frequently Asked Questions
What is the severity of CVE-2022-41717?
The severity of CVE-2022-41717 is medium with a severity value of 5.3.
How does CVE-2022-41717 affect Go server?
CVE-2022-41717 can cause excessive memory growth in a Go server accepting HTTP/2 requests.
What can an attacker do with CVE-2022-41717?
An attacker exploiting CVE-2022-41717 can cause the server to allocate excessive memory by sending very large keys.
Which versions of Golang are affected by CVE-2022-41717?
Versions up to and exclusive of 1.18.9 and versions between inclusive and exclusive of 1.19.0 to 1.19.4 are affected by CVE-2022-41717.
How can I fix CVE-2022-41717?
To fix CVE-2022-41717, update to Golang version 1.18.9 or 1.19.4, depending on your current version.