Blog

eMudhra CA Key Compromise: Detecting Your Exposure to the Weak Intermediate Certificates

Sachin Kode, Head of Security, ArmorCode
Head of Security
Lead Engineer, ArmorCode

Executive Summary

  • What it is: Eight intermediate certificate authority (CA) keys run by eMudhra (emSign) were generated so weakly that anyone could recover them. Three identifiers track the fallout: CVE-2026-113470 (Firefox), CVE-2026-111943 (Go) and GHSA-6q48-6c7w-9gw2 (Python certifi). It is a CA key compromise, not a data breach.
  • Who is affected: Any client that still trusts the affected certificate chains where an attacker can intercept traffic. Browsers blocked them within hours. Risk is highest for servers, containers and applications that carry their own trust store.
  • How to find your exposure: Use Anya and an AQL v2 query on the Findings page to see which applications and assets are affected.
  • How to fix it: Update Firefox to 158.0.1, rebuild Go services with Go 1.26.10 or 1.27.3, upgrade certifi to 2026.10.19 or later, update OS CA bundles, and replace any certificate issued under emSign ECC Root CA – G3.

On October 17, 2026, a researcher reported that the private keys of eight eMudhra intermediate CAs could be recovered from the public certificates. Mozilla confirmed the report, blocked the intermediates in Firefox the same day, and eMudhra revoked all eight certificates on October 18 (Mozilla incident report). Software vendors have since shipped their own fixes, and Mozilla has removed the emSign ECC Root CA – G3 root. Chrome expects to follow on October 27.

Why this eMudhra incident demands different response

Most vulnerabilities are code bugs patched at a single point. A CA key compromise is a system-wide failure of trust.

  • It sits below your application code. Fixing your own code does not help. Each runtime has to update its trust data: Firefox shipped a blocklist, Go added a denylist, and certifi removed roots from its bundle.
  • Trust stores are everywhere. Operating systems, language runtimes and container base images each carry their own copy. Browsers can push revocations quickly, but servers and containers usually cannot.
  • Rebuilding is required. Installing a newer Go compiler does not change a binary you already built, and container images that vendor certifi must be rebuilt.

How the eMudhra intermediate CA keys were weakened

During an April 30, 2025 key generation ceremony for 24 subordinate CAs, a software flaw during a wrap/unwrap step produced weak P-384 key pairs. Eight of these weak pairs were accidentally deployed to issue live intermediate certificates.

Instead of possessing 384 bits of entropy, the private scalar keys evaluated to single and double digit integers below 256. Because the public keys were published in the certificate data, researchers recovered the matching private keys in under a second.

Which versions are affected?

ComponentWhat changedVulnerable VersionsFixed Versions
FirefoxMozilla blocked the intermediates on October 17. Firefox 158.0.1 and later carry the blocklist inside the software, so the block applies even if RemoteSettings is disabledVulnerable below 158.0.1 and ESR 153.5.1158.0.1, ESR 153.5.1. Firefox for Android needs 158.0.2 
Go crypto/x509Go added a denylist that makes verification fail for the eight intermediates, mainly for systems whose trust store has not been updatedGo earlier than 1.26.10, and 1.27.0 up to 1.27.3 1.26.10 or 1.27.3, then rebuild and redeploy
Python certificertifi ships its own CA store, which included the emSign ECC Root CA – G3 root. Version 2026.10.18 removed all emSign roots and 2026.10.19 restored the unaffected ones2019.03.09 up to but not including 2026.10.192026.10.19 or later; rebuild images that vendor it
Certificates under emSign ECC Root CA – G3Mozilla removed the root from its store. Chrome expects to remove it in Stable on October 27. eMudhra has stopped issuing from intermediates under itDistrusted by Mozilla; Chrome expects removal on October 27Reissue from a different CA hierarchy

Potential Exposure Identifiers: CVE-2026-113470 (Firefox), CVE-2026-111943 (Go crypto/x509) and GHSA-6q48-6c7w-9gw2 (Python certifi, no CVE assigned)

How to detect eMudhra CA exposure in your environment with ArmorCode

Because the private keys are publicly known, speed is critical. You can identify exposed workloads across your environment using ArmorCode

1. Ask Anya

Leverage Anya (ArmorCode’s security champion) to run immediate natural-language assessments:

  • “Am I impacted by CVE-2026-113470, CVE-2026-111943, or GHSA-6q48-6c7w-9gw2?”
  • “Show me all applications, services, and workloads exposed to the eMudhra certificate compromise.”
  • “Have any new findings related to the eMudhra compromise been detected in the last 24 hours?”

2. Finding view  

Open the pre-built “eMudhra Signing Key Exposure” finding view on the Findings page to assess potential exposure  across all your environment. Triage and group findings by Components, Internet Exposure and Asset Criticality to prioritize high-risk production endpoints.

How to fix the eMudhra CA key compromise: patch and mitigation checklist

  1. Find your exposure. Run the query above and test representative hosts.
  2. Update to fixed versions. Firefox 158.0.1 or ESR 153.5.1, Go 1.26.10 or 1.27.3, and certifi 2026.10.19 or later.
  3. Rebuild and restart. Rebuild Go binaries and container images, redeploy, and restart long-running services so they load the new trust data.
  4. Replace certificates under emSign ECC Root CA – G3 before Chrome removes the root on October 27. Force renewal, because ACME clients usually will not replace a certificate outside their renewal window.
  5. Apply interim controls where you cannot patch today, and treat those hosts as still exposed.

Temporary workarounds

Updating the trust data is the only complete fix. The measures below reduce exposure and do not make a system safe. Treat them as a bridge to a patch window.

  • Block the eight public keys in proxies or gateways you control. Blocking by public key covers both the eMudhra and the Sectigo cross-signed certificates .
  • Remove the affected roots from CA bundles you cannot patch yet, after testing. Mozilla’s Dennis Jackson suggests removing emSign ECC Root CA – G3 and Sectigo’s AAA Certificate Services 
  • Route workloads through a managed egress proxy whose trust store is kept up to date.
  • Do not disable certificate verification to silence errors after patching.

References

Five actions for managing exposure at AI-scale,
backed by research.

ArmorCode Report: Managing Exposure at AI-Scale