Skip to main content
← All vulnerabilities
CVE-2026-78659GO-2026-6603BIT-GOLANG-2026-78659

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

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 1.26.9, 1.27.2, 0.60.0
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: yes
  • Technical impact: partial

Summary

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: partial

  3. Record last updated

Affected versions

  • net/http

    fixed in 1.26.9

  • net/http/internal/http2

    From 1.27.0-0 · fixed in 1.27.2

  • golang.org/x/net/http2

    fixed in 0.60.0

  • stdlibGo

    fixed in 1.26.9

  • stdlibGo

    From 1.27.0-0 · fixed in 1.27.2

  • golang.org/x/netGo

    fixed in 0.60.0

References 6

go.dev

groups.google.com

pkg.go.dev