Go Releases 1.27.3 and 1.26.10 to Block Compromised eMudhra Certificates
The Go team has released updates for versions 1.27.3 and 1.26.10 to revoke trust in eight eMudhra intermediate certificates that are susceptible to private key recovery.
Go 1.27.3 and Go 1.26.10 block trust in eight eMudhra intermediate certificates because their private keys could be recovered in microseconds. You should rebuild Go programs that make TLS connections with one of these releases.
Mozilla added those eight intermediates to OneCRL on October 17. Six were for TLS and two for code signing. An attacker with the recovered private keys could sign TLS certificates for any domain and run man-in-the-middle attacks.
Because Linux lacks a uniform built-in revocation mechanism, Go uses its own verifier there. Windows and macOS handle verification via platform APIs.
An independent researcher alerted the Go Security team on October 19 at 11:45 PDT. Mozilla confirmed the issue at 12:30 PDT. A patch was ready by 14:00 PDT, and releases went out at 19:13 PDT.
Any Go binary talking to TLS services is affected, including those using net/http, crypto/tls, or dependencies like gRPC. Check your toolchain version with go version and binary versions using go version -m. You can also run govulncheck -mode=binary after installing it via GOTOOLCHAIN=go1.27.3+auto go install golang.org/x/vuln/cmd/govulncheck@latest.
Go plans to prioritize revocation support on Linux, tracking the work in issue #82402, which includes looking at the upki project.
