VDB
Sign up
HIGH7.5

GO-2026-6603

HTTP/2 server memory exhaustion due to Trailer headers in net/http

Quick fix

GO-2026-6603 — stdlib: upgrade to the fixed version with the command below.

go get stdlib@v1.26.9

Details

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.

Are you affected?

Enter the version of the package you're using.

Affected packages

Go/stdlib
Introduced in: 0Fixed in: 1.26.9
Fixgo get stdlib@v1.26.9
Go/stdlib
Introduced in: 1.27.0-0Fixed in: 1.27.2
Fixgo get stdlib@v1.27.2
Go/golang.org/x/net
Introduced in: 0Fixed in: 0.60.0
Fixgo get golang.org/x/net@v0.60.0

References