Go urgent releases reject certificate chains using eight CA keys

The Go project released Go 1.27.3 and Go 1.26.10 on October 20 with an emergency certificate-verification change. Programs rebuilt with either release will reject certificate chains that pass through any of eight intermediate certificate authority public keys.
Go said the keys belong to one unnamed certificate authority and cited “specific security concerns around their operation.” The project handled the update through its URGENT process, reserved in its security policy for threats to the integrity of the Go ecosystem or actively exploited flaws capable of severe damage, and recommended immediate upgrades.
What the verifier now blocks
The new filter runs whenever a Go program verifies a certificate chain. Rather than identifying certificates by their full contents, it calculates a hash of each certificate’s public key. That means a cross-signed certificate containing one of the blocked keys is still rejected even if it has been signed by another root.
The check is implemented in Go’s own verifier and in the macOS and Windows paths that delegate certificate verification to the operating system. Affected chains produce the error x509: no valid chains built. The release includes no switch to disable the filter.
The code structure also indicates that the restriction applies when an application provides its own trusted root set. As a result, a private deployment that deliberately trusts one of the eight intermediates can fail after being rebuilt on the updated Go versions. Go had not said whether that outcome was intentional.
Intermediates linked to eMudhra
Go published only SHA-256 hashes of the keys. A commenter on the Go issue matched those hashes to eMudhra intermediates in certificate records, although the hashes were not independently verified by The Hacker News. The matching identifies six TLS intermediates under emSign Root TLS CA - G3: EM DV TLS CA - G3B and G3C, EM OV TLS CA - G3B and G3C, and EM EV TLS CA - G3B and G3C.
The remaining two were matched to code-signing intermediates under emSign Root CS CA - G3: EM OV CS CA - G3B and EM OV CS CA - G3C. On October 17, Mozilla added six intermediates issued by emSign Root TLS CA - G3 to OneCRL, Firefox’s certificate-blocking list. Mozilla’s related bug is not public, and neither Mozilla nor Go has disclosed the underlying reason for its action.
It is not established whether Chrome, Apple, or Microsoft have imposed equivalent restrictions. eMudhra, an Indian certificate authority selling certificates under the emSign brand, had not published a notice about the intermediates in its repository as of October 20, and no public company statement was identified.
Why rebuilding matters
Go’s verifier does not perform revocation checking and does not consume browser block lists. Consequently, this restriction reaches Go applications only when they are built with a patched release; software built with older toolchains retains its prior verification behaviour. Bluesky’s indigo was among projects rebuilt on the new releases on October 20.
Go 1.25 and earlier are unsupported and will not receive this fix. Operators should identify Go-built clients and services, move them to a supported release, and verify certificate chains used by dependencies and private endpoints. Services chaining through the eight keys will need certificates from a different intermediate before rebuilt Go clients can connect successfully.

