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
Two Go point releases fix HTTP/2 crash and exhaustion bugs, a toolchain checksum bypass and the eMudhra CA keys. Rebuild with Go 1.27.3 or 1.26.10.
- Published
- Updated
- CVE
- CVE-2026-97032
CVE-2026-78659
CVE-2026-78669
CVE-2026-78667
CVE-2026-97031
CVE-2026-94447
CVE-2026-97030
CVE-2026-111943 - Ecosystem
- Open sourceCI/CD
- Fixed in
- Go 1.27.3 and 1.26.10 (include the 1.27.2 and 1.26.9 fixes); golang.org/x/net 0.60.0 for direct x/net/http2 users
- Exploitation
- No exploitation reported; none of the CVEs is in CISA KEV as of 30 October 2026
Live scores
CVE-2026-97032- EPSS
- 0.005
low predicted chance of attack - VEDAS
- 0.055
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-78659- EPSS
- 0.006
low predicted chance of attack - VEDAS
- 0.048
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-78669- EPSS
- 0.006
low predicted chance of attack - VEDAS
- 0.047
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-78667- EPSS
- 0.005
low predicted chance of attack - VEDAS
- 0.051
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-97031- EPSS
- 0.005
low predicted chance of attack - VEDAS
- 0.521
some exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-94447- EPSS
- 0.001
low predicted chance of attack - VEDAS
- 0.055
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-97030- EPSS
- 0.003
low predicted chance of attack - VEDAS
- 0.056
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-111943- EPSS
- 0.004
low predicted chance of attack - VEDAS
- 0.916
strong exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
What happened
Go shipped two rounds of security fixes in October 2026.
Go 1.27.2 and 1.26.9 (8 October) fixed 15 security issues in the go command and the crypto/tls, html/template, net/http, net/textproto and os packages (Go release history; golang-announce). The ones most likely to matter on servers:
- CVE-2026-97032, HTTP/2 server crash. The server changes its HPACK encoder from two goroutines without locking. A client that keeps sending requests while changing the header table size can crash the server (CVE record).
- CVE-2026-78659, HTTP/2 memory exhaustion. A client can declare a huge number of fields in a
Trailerheader and make the server allocate memory past theMaxHeaderByteslimit. HTTP/1 servers are not affected (CVE record). - CVE-2026-78669, HTTP/2 CPU exhaustion. A peer opens many streams, then sends many small SETTINGS frames that change the initial window size. It affects clients and servers (CVE record).
- CVE-2026-78667, Range header CPU exhaustion in
FileServer,ServeContentandServeFile(CVE record). - CVE-2026-97031, ECH memory exhaustion in
crypto/tlsservers, from malformed outer extension references (CVE record). - CVE-2026-94447, toolchain checksum bypass. Inside a malicious project that defines a bogus
golang.org/toolchainentry ingo.sum, and with a malicious module proxy,cmd/gocould skip the checksum check on a downloaded toolchain. Go now always fetches the canonical checksum from the network (CVE record). A related fix coversgolang.org/fips140(CVE-2026-94444). - CVE-2026-97030, html/template escaping of the
yieldkeyword (CVE record).
The release also fixes two HTTP/1 connection desynchronization bugs around CONNECT (CVE-2026-56866, CVE-2026-94439), a MIME header memory limit bypass (CVE-2026-94440), and os.Root following junctions out of the root on Windows (CVE-2026-56857), among others (golang-announce).
Go 1.27.3 and 1.26.10 (19 October) fixed crypto/x509 only (Go release history). Go added a denylist so Verify rejects chains through “a small set of intermediate certificates” (golang-announce). The Go announcement does not name the CA. Tailscale’s bulletin says this release “explicitly distrusts” the compromised eMudhra intermediates (Tailscale TS-2026-013). It is tracked as CVE-2026-111943. The record explains that Go normally uses the system roots, but system stores may not be updated in some cases, so the denylist covers them (CVE record). See our eMudhra advisory for that incident.
None of these CVEs is in CISA’s KEV catalog as of 30 October 2026, and the CVE records show no known exploitation.
Am I affected?
Any Go binary built with a toolchain older than 1.26.9 or 1.27.2 has the HTTP/2 and toolchain bugs. Anything older than 1.26.10 or 1.27.3 lacks the eMudhra distrust.
# The toolchain on this machine
go version
# Which toolchain built a binary, and its module versions (including x/net)
go version -m ./mybinary | head -20
# Reachability check against the Go vulnerability database
govulncheck ./...Check where the Go version is pinned: the go and toolchain lines in go.mod, the FROM golang: line in Dockerfiles, and go-version in CI setup steps. A pin like golang:1.27 picks up a new patch release only when the image is pulled again.
If you import golang.org/x/net/http2 directly, its version is separate from the toolchain:
go list -m golang.org/x/net # want v0.60.0 or laterWhat to do now
- Bump the toolchain to 1.27.3 or 1.26.10 in
go.mod(toolchainline), Dockerfiles and CI, then rebuild and redeploy every binary and image. Third-party Go tools you run (CLIs, agents, sidecars) need their vendors to rebuild; check their release notes for Go 1.27.3 or 1.26.10. - Update
golang.org/x/netto 0.60.0 if your code or dependencies usex/net/http2directly:go get golang.org/x/net@v0.60.0 && go mod tidy. - Prioritise internet-facing HTTP/2 servers. CVE-2026-97032 crashes the process and CVE-2026-78659 and CVE-2026-78669 exhaust memory and CPU. If you cannot rebuild yet, terminating HTTP/2 at a proxy that is not written in Go limits exposure.
- Do not use untrusted module proxies when building untrusted code. CVE-2026-94447 needed both a malicious project and a malicious
GOPROXY. KeepGOPROXYandGOSUMDBat trusted values in CI. - After rebuilding, test TLS clients against servers you depend on. A server whose chain runs through one of the denied eMudhra intermediates will now fail verification; fix the server’s certificate, not the client.
Sources
- Go release history
- golang-announce: Go 1.27.2 and 1.26.9 security fixes
- golang-announce: Go 1.27.3 and 1.26.10 security fix
- CVE record: CVE-2026-97032
- CVE record: CVE-2026-78659
- CVE record: CVE-2026-78669
- CVE record: CVE-2026-78667
- CVE record: CVE-2026-97031
- CVE record: CVE-2026-94447
- CVE record: CVE-2026-97030
- CVE record: CVE-2026-111943
- Tailscale security bulletin TS-2026-013