CVE-2026-78659: HTTP/2 server memory exhaustion due to Trailer headers in net/http
Advisory generated from the CVE record, CISA, Exploit Observer and VEDAS: what it is, whether it is exploited, who is affected, and how to fix and detect it.
Generated by VEDAS. Scores as of 2026-11-01 19:19 UTC. Rebuilt every few hours from cve-scores, CISA KEV and vedas-signatures. How this works and its limits.
What it is
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.
Description quoted from the CVE record (assigned by Go, published 2026-10-08).
Weakness: CWE-405 Asymmetric Resource Consumption (Amplification)
How it can be exploited
Exploitable over the network with low attack complexity needing no privileges and no user interaction. Impact: confidentiality none, integrity none, availability high. CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CISA assessment (SSVC): CISA has no evidence of exploitation. Automatable: yes. Technical impact: partial.
Public exploit evidence (Exploit Observer)
Exploit Observer evidence for this CVE has not been fetched yet.
Live scores
- EPSS
- 0.006
low predicted chance of attack - VEDAS
- 0.048
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Who is affected
| Product | Affected | Not affected |
|---|---|---|
| Go standard library net/http | before 1.26.9 | Not stated |
| Go standard library net/http/internal/http2 | from 1.27.0-0 before 1.27.2 | Not stated |
| golang.org/x/net golang.org/x/net/http2 | before 0.60.0 | Not stated |
Version ranges exactly as the CVE record states them. “Before X” means X is the first fixed version.
How to fix it
Fixed versions stated in the CVE record: 1.26.9, 1.27.2, 0.60.0.
How to detect it
There is no open VEDAS detection rule for this bug yet. It is listed on the detection gaps page if CISA has confirmed attacks.
Advisories on this CVE
- Go 1.27.2 and 1.27.3: 15 security fixes including HTTP/2 server crashes, then a crypto/x509 distrust of the eMudhra intermediates (full advisory)
- Go: two security releases, HTTP/2 and toolchain fixes then eMudhra distrust (CVE-2026-78659, CVE-2026-78667, CVE-2026-78669, CVE-2026-97032, CVE-2026-97031, CVE-2026-94447, CVE-2026-97030) (19 Oct 2026)
References
Other references
- https://go.dev/cl/847185
- https://go.dev/cl/847314
- https://go.dev/issue/81857
- https://groups.google.com/g/golang-announce/c/U2fTuyDJznI
- https://groups.google.com/g/golang-announce/c/ZPwCyRUuGBs
- https://pkg.go.dev/vuln/GO-2026-6603
Other databases
Where this comes from
This advisory is generated automatically by VEDAS from: CVE.org record, cve-scores (EPSS and VEDAS). Text in quotes is reproduced from the source; everything else is a fixed template filled with source fields. Nothing here is written by a language model. Check the vendor advisory before acting, and read how VEDAS and Exploit Observer work, and their limits.