Most security alerts are about a bug. This one is about trust. On 20 October 2026, in an emergency release, Go stopped trusting eight keys belonging to a certificate authority. This followed Mozilla’s decision on 17 October to distrust six intermediates from the same family of issues.
What happened
Every HTTPS connection relies on a chain: a trusted root, an intermediate that it vouches for, and the website’s own certificate. Go’s release blocks specific intermediate keys. If a site’s chain goes through one of them, a program built with the new Go fails with:
x509: no valid chains built
The surprise is who is affected. A binary built before 20 October keeps the old behaviour and connects happily, until it is rebuilt. A service built on Go 1.27.3 or 1.26.10 starts failing the moment it meets a chain through a blocked key. That makes this a rebuild-day bug: everything works, you ship a routine update, and then an outbound call breaks.
What could happen to your code
- A routine rebuild of a healthy service suddenly cannot reach a payment, mail, identity or webhook provider.
- CI pipelines that download tools or call registries start failing with certificate errors.
- A partner API you do not control may still be on a blocked chain. You cannot fix that on your side beyond waiting for them.
What to do
- Before deploying a rebuild, run it in staging and call every external endpoint it depends on. Look specifically for
x509errors. - If you operate a server, check which CA and intermediate your certificate chains through. If it is one of the blocked keys, re-issue the certificate from another intermediate and make sure your server sends the full chain.
- If a dependency’s endpoint fails, contact them with the exact error and chain. Do not turn off certificate verification as a workaround; that trades a broken connection for an open door.
- Keep an inventory of your outbound dependencies so you know what to test.
- Alert on certificate errors in logs, so the first sign is a graph, not a customer.