CVE-2026-78663: Double flow control refund on HTTP/2 server streams in net/http
Double flow control refund on HTTP/2 server streams in net/http
Other sources
The HTTP/2 server can refund connection-level flow control twice for the same data: Once when a client resets a stream (refunding data for any sent-but-unread portion of the stream), and again when a request handler reads the buffered data. A malicious client can exploit this to bypass the configured connection-level flow control limit (MaxReceiveBufferPerConnection). Total buffered data is still limited by the concurrent stream limit and stream-level flow control.
— NVD
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
azurelinux/prometheus-process-exporterto a version that resolves this vulnerability.Fixed in 0.8.2-6 - Upgrade
Upgrade
azurelinux/prometheus-node-exporterto a version that resolves this vulnerability.Fixed in 1.7.0-6 - Upgrade
Upgrade
azurelinux/etcdto a version that resolves this vulnerability.Fixed in 3.5.35-1 - Upgrade
Upgrade
azurelinux/opato a version that resolves this vulnerability.Fixed in 0.63.0-6 - Upgrade
Upgrade
azurelinux/influxdbto a version that resolves this vulnerability.Fixed in 2.7.5-22 - Upgrade
Upgrade
azurelinux/kubevirtto a version that resolves this vulnerability.Fixed in 1.8.4-4 - Upgrade
Upgrade
azurelinux/prometheus-adapterto a version that resolves this vulnerability.Fixed in 0.12.0-12 - Upgrade
Upgrade
azurelinux/kedato a version that resolves this vulnerability.Fixed in 2.14.1-22 - Upgrade
Upgrade
azurelinux/kube-vip-cloud-providerto a version that resolves this vulnerability.Fixed in 0.0.10-11 - Upgrade
Upgrade
azurelinux/containerized-data-importerto a version that resolves this vulnerability.Fixed in 1.62.0-9 - Upgrade
Upgrade
azurelinux/cloud-provider-kubevirtto a version that resolves this vulnerability.Fixed in 0.5.1-10 - Upgrade
Upgrade
azurelinux/cert-managerto a version that resolves this vulnerability.Fixed in 1.12.15-15 - Upgrade
Upgrade
azurelinux/kubernetesto a version that resolves this vulnerability.Fixed in 1.30.10-32 - Upgrade
Upgrade
azurelinux/kata-containersto a version that resolves this vulnerability.Fixed in 4.1.0.kata1-2 - Upgrade
Upgrade
azurelinux/moby-containerd-ccto a version that resolves this vulnerability.Fixed in 1.7.7-19 - Upgrade
Upgrade
azurelinux/kata-containers-ccto a version that resolves this vulnerability.Fixed in 3.15.0.aks0-23 - Upgrade
Upgrade
alpine/dockerto a version that resolves this vulnerability.Fixed in 29.9.0-r0 - Upgrade
Upgrade
alpine/goto a version that resolves this vulnerability.Fixed in 1.26.9-r0
Event History
Frequently Asked Questions
Who is exposed to this issue?
HTTP/2 servers using Go's net/http are exposed if they accept malicious client connections. The issue concerns the configured connection-level receive buffer limit, MaxReceiveBufferPerConnection.
What does an attacker need to do to exploit it?
An attacker needs to send data on an HTTP/2 stream, reset that stream, and have the request handler read the buffered data. This causes the same sent-but-unread data to be refunded twice at the connection level.
Does this allow unlimited server-side buffering?
No. Although the attacker can bypass the connection-level flow-control limit, total buffered data remains constrained by the concurrent stream limit and stream-level flow control.