CVE-2026-78659: HTTP/2 server memory exhaustion due to Trailer headers in net/http
HTTP/2 server memory exhaustion due to Trailer headers in net/http
Other sources
When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently.
— NVD
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
azurelinux/prometheus-node-exporterto a version that resolves this vulnerability.Fixed in 1.7.0-6 - Upgrade
Upgrade
azurelinux/git-lfsto a version that resolves this vulnerability.Fixed in 3.6.1-7 - Upgrade
Upgrade
azurelinux/prometheus-process-exporterto a version that resolves this vulnerability.Fixed in 0.8.2-6 - Upgrade
Upgrade
azurelinux/corednsto a version that resolves this vulnerability.Fixed in 1.11.4-23 - Upgrade
Upgrade
azurelinux/vitessto a version that resolves this vulnerability.Fixed in 19.0.4-15 - Upgrade
Upgrade
azurelinux/ghto a version that resolves this vulnerability.Fixed in 2.102.0-2 - Upgrade
Upgrade
azurelinux/application-gateway-kubernetes-ingressto a version that resolves this vulnerability.Fixed in 1.7.7-7 - 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/jxto a version that resolves this vulnerability.Fixed in 3.10.182-6 - Upgrade
Upgrade
azurelinux/packerto a version that resolves this vulnerability.Fixed in 1.9.5-23 - Upgrade
Upgrade
azurelinux/prometheus-adapterto a version that resolves this vulnerability.Fixed in 0.12.0-12 - Upgrade
Upgrade
azurelinux/kubevirtto a version that resolves this vulnerability.Fixed in 1.8.4-4 - Upgrade
Upgrade
azurelinux/kedato a version that resolves this vulnerability.Fixed in 2.14.1-22 - Upgrade
Upgrade
azurelinux/containerd2to a version that resolves this vulnerability.Fixed in 2.3.7-1 - Upgrade
Upgrade
azurelinux/kuredto a version that resolves this vulnerability.Fixed in 1.15.0-7 - Upgrade
Upgrade
azurelinux/kube-vip-cloud-providerto a version that resolves this vulnerability.Fixed in 0.0.10-11 - Upgrade
Upgrade
azurelinux/flannelto a version that resolves this vulnerability.Fixed in 0.24.2-34 - Upgrade
Upgrade
azurelinux/containerized-data-importerto a version that resolves this vulnerability.Fixed in 1.62.0-9 - Upgrade
Upgrade
azurelinux/docker-composeto a version that resolves this vulnerability.Fixed in 2.27.0-16 - Upgrade
Upgrade
azurelinux/influxdbto a version that resolves this vulnerability.Fixed in 2.7.5-22 - Upgrade
Upgrade
azurelinux/azurelinux-image-toolsto a version that resolves this vulnerability.Fixed in 1.7.0-2 - Upgrade
Upgrade
azurelinux/cert-managerto a version that resolves this vulnerability.Fixed in 1.12.15-15 - Upgrade
Upgrade
azurelinux/cloud-provider-kubevirtto a version that resolves this vulnerability.Fixed in 0.5.1-10 - Upgrade
Upgrade
azurelinux/skopeoto a version that resolves this vulnerability.Fixed in 1.14.4-14 - Upgrade
Upgrade
azurelinux/docker-buildxto a version that resolves this vulnerability.Fixed in 0.14.0-19 - Upgrade
Upgrade
azurelinux/telegrafto a version that resolves this vulnerability.Fixed in 1.31.0-35 - Upgrade
Upgrade
azurelinux/multusto a version that resolves this vulnerability.Fixed in 4.0.2-12 - Upgrade
Upgrade
azurelinux/kata-containersto a version that resolves this vulnerability.Fixed in 4.1.0.kata1-2 - Upgrade
Upgrade
azurelinux/kata-containers-ccto a version that resolves this vulnerability.Fixed in 3.15.0.aks0-23 - Upgrade
Upgrade
azurelinux/kubernetesto a version that resolves this vulnerability.Fixed in 1.30.10-32 - Upgrade
Upgrade
azurelinux/moby-containerd-ccto a version that resolves this vulnerability.Fixed in 1.7.7-19 - 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
Which server deployments are exposed to this issue?
HTTP/2 servers using Go's net/http are exposed. HTTP/1 servers are not affected by this exploit because they cannot multiplex a large number of requests over one TCP connection and calculate Server.MaxHeaderBytes differently.
What does an attacker need to do to trigger the memory exhaustion?
A malicious client needs to send HTTP/2 requests containing a Trailer header that declares a large number of fields. The server creates entries in Request.Trailer for those declared fields, consuming disproportionate memory.
Do Server.MaxHeaderValueCount or Server.MaxHeaderBytes prevent this attack?
No. For HTTP/2, the declared Trailer fields can cause the allocation while bypassing both Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits.