Certificates, trust and the long tail
Oct 21st, 2026 by Jesper Kråkhede
Last Friday a researcher reported that the private keys of eight intermediate certificates from a certificate authority were broken. Not stolen. Broken. They had been generated with almost no randomness, so anyone could calculate them from the public certificate. The private keys had values between 4 and 237. A normal key for that curve has around 2384 possibilities. These had fewer than 256. You could guess them on a pocket calculator.
Six of the certificates could issue TLS certificates for any website. Two were used for code signing. And they had been trusted by browsers and operating systems for a year and a half.
The good news first. The browsers reacted fast. Chrome and Firefox blocked the certificates within hours, without users having to update or restart anything. Apple, Android and Microsoft followed within days. And because the browsers require every certificate to be logged in Certificate Transparency, and no certificates from these intermediates had been logged, there is no sign that anyone used them to fake a website.
So why am I writing about it? Because the browser was the easy part. The hard part is the long tail.
TLS isn´t only used by browsers. It is used by every server that calls an API, every Python script, every Go binary, every container image, every appliance, every IoT device and every VPN client. Many of them don´t use the operating system´s list of trusted roots. They carry their own copy, baked in when they were built. A container built last year still trusts what it trusted last year, until someone rebuilds it. One of the cryptography maintainers involved said the clean up could be bigger than Heartbleed. I think he is right about the shape, if not the danger: a very long tail of forgotten things.
To abuse the keys, an attacker still has to sit in the middle of the traffic. That isn´t trivial on the internet, but it is easy on a hotel network, a compromised router or inside a network the attacker already controls.
What to do this week
1. Update the trust stores you know about. Operating systems, Linux distributions and browsers first. Check with the test sites published for the incident that the certificates are really blocked.
2. Find the trust stores you don´t know about. Python certifi bundles, Node, Java keystores, Go binaries, curl bundles, container base images. Search your repositories and images for the root and intermediate certificates of the affected CA.
3. Rebuild and redeploy. Updated libraries are out for Go, Python, Rust and others. A library update doesn´t help a binary that was compiled last year. It has to be rebuilt.
4. Check your appliances and IoT. Firewalls, proxies, load balancers and anything doing TLS inspection have their own trust stores. Ask the vendors when they ship an update, and push for an answer.
5. Check if you have certificates from this CA yourself. If your own websites or services use them, they must be replaced, because the issuing certificates are revoked.
6. Look at code signing. Two of the keys signed code. Check if you allow software signed by them anywhere, for example in application control policies.
Where Defender helps, and where it doesn´t
This is exactly the kind of problem where inventory matters, and where many organisations discover they have none.
The Defender Vulnerability Management add-on, for clients with Defender for Endpoint Plan 2, includes certificate inventory. It shows which certificates are installed in the certificate stores on your devices, including root and intermediate certificates, who issued them and on which devices they are. That means you can search for the affected CA and see where it is trusted, and the same data is available in advanced hunting, so you can build a query that you rerun until the list is empty. The add-on also gives you a better software inventory and assessment, which helps you find the affected versions of runtimes and tools.
On the server side, you don´t need the add-on if you have Defender for Servers Plan 2. It includes the premium Defender Vulnerability Management capabilities, certificate assessment among them, for servers in Azure, other clouds and on-premises through Azure Arc. Plan 2 also adds agentless scanning, which can find vulnerable software in machines and container images without an agent.
But be honest about the limits. Certificate inventory sees what is installed in the system certificate stores. It won´t see a CA bundle compiled into a Go binary, a cacert.pem file inside a Python virtual environment or the trust store in a firewall. And it won´t see the IoT device that has no agent at all. For those, you need software inventory, image scanning, your development pipelines and good old questions to the vendors. Defender gives you the map of what is managed. The long tail is often exactly what isn´t.
The bigger lesson
In September 2024 I wrote that you should make an inventory of your cryptography before the quantum computers arrive. This week showed why. When trust breaks, the question isn´t only how to fix it. It is where it lives. Organisations that know where their certificates, trust stores and keys are will be done in days. The rest will be finding forgotten copies for years.
There is a compliance angle too. Under the new cybersecurity act you must be able to show that you act on known vulnerabilities in time. A certificate authority you trust being compromised is a known vulnerability. ‘We updated the browsers’ won´t be a complete answer.
Trust is only as strong as its longest tail. Go find yours.
