
Eight private keys. One question: who still trusts them?
On 17 October 2026, browser root programs received cryptographic proof that someone outside eMudhra held the private keys of eight of its intermediate certificate authorities. Within three hours of receiving the report, both Chrome and Firefox had blocked them. This dossier checks every material claim against primary evidence, separates what an attacker could do from what has been shown, and tells enterprises where trust may still be leaking.
Incident intelligence briefing
What we know, and what we do not
Each step below needs its own evidence. A compromised key does not mean a fraudulent certificate was issued; an issued certificate does not mean a victim was attacked.
Absence of evidence is not evidence of absence. "Not evidenced" means no public source shows it as of the cutoff.
The eight-key evidence board
"Eight" means eight private keys, which is also eight unique public keys (SPKI hashes). Each key appears in two certificate objects: one issued by an eMudhra root, and a cross-certificate issued by Sectigo's AAA Certificate Services. That makes 16 certificates to block, not 8. All keys are ECDSA P-384. Data from the researcher's published impacted-intermediates.json, which matches the 8 SPKI hashes hard-coded in Go's fix.
Full fingerprints, serials, Subject and Authority Key Identifiers and CCADB record IDs for all 16 objects are in the technical appendix below. G3B entities are eMudhra BV (Netherlands); G3C entities are eMudhra Inc (United States). Times are the CRL revocation timestamps recorded in the published data. (E-003–E-008)
Three roots, two cross-sign paths, one weak link
A root CA signs an intermediate; the intermediate signs end-entity (leaf) certificates; clients accept a leaf if they can build a path to a root they trust and nothing on the path is revoked or distrusted. Whoever holds an intermediate's private key can mint leaves that this path vouches for. The roots' own keys are not reported compromised.
Root-store status comes from the researcher's roots.json, compiled from CCADB data. The cross-sign from emSign ECC Root CA - G3 to emSign Root TLS CA - G3 is our inference: roots.json lists ECC G3 with the role "cross_signer", and eMudhra told Mozilla its purpose-based TLS roots are cross-signed by the G1/G3 roots. We did not see the cross-certificate itself. Name Constraints, Key Usage and EKU fields were not independently parsed.
"We have a problem here - Wayne"
The reporter, identified only as "Wayne", signed that message with each of the eight private keys. The signatures went to the root programs on 17 October, and the disclosure site publishes them in proof.zip, with each certificate and public key, and OpenSSL commands to check them.
The logic is simple. A certificate binds a public key to a CA name. An ECDSA P-384 signature over a chosen message that verifies against that public key can only have been produced with the matching private key. So a valid signature on a fresh, attacker-chosen message proves present-day possession of the key, which no outsider should have.
Commands as published by the disclosure site. We did not reproduce them: our research environment could not download proof.zip. The Chrome Root Program states it "completed corroborating the findings" before blocking, and the CA revoked all 16 certificates as cACompromise. (E-002, E-008, E-009)
- The signer held each of the eight private keys when signing
- The keys match the published certificates exactly
- Every certificate sharing those keys (including Sectigo cross-signs) is equally exposed
- When the keys were first taken
- How: an HSM failure, key-ceremony error, insider, backup or software flaw
- Who else holds copies
- Whether the keys were ever used to issue certificates
From report to remediation in four days
Lanes separate the kinds of milestone, so that a patch being released is not confused with it reaching users. Where only a date is published, no time is shown.
Two hypothetical attack paths, set against what actually happened
Dashed steps are what an attacker holding the keys could attempt. Solid steps are documented. No documented step links to a victim.
- 1Mint a leaf for a target domain (for example a bank's login host) with a TLS intermediate key.
- 2Get on the path: DNS hijack, BGP hijack, rogue Wi-Fi, compromised proxy or router. The key alone does not redirect traffic.
- 3Pass the client's checks: the client must trust a root on the path, must not have the block, and, in CT-enforcing browsers such as Chrome and Safari, must see valid CT proofs, which would publish the fake certificate.
- 4Impact: read or alter traffic, steal credentials or API tokens.
- 1Issue a code-signing certificate in any publisher name from a CS intermediate key. No public log records it.
- 2Sign a payload: malware, a tampered installer or a driver package.
- 3Deliver and get it run: phishing, a compromised update channel. A signature only helps once the file reaches a machine whose platform trusts the chain. The issuing root, emSign Root CS CA - G3, is listed only in Microsoft's store.
- 4Impact: fewer security warnings, more trust from allow-listing tools that key on "signed by a trusted CA".
Strong evidence, with a precise scope
The only first-party CT statement is Chrome's: "no TLS certificates chaining to these six intermediate CAs were logged to CT prior to our CRLSet block on October 17", so "no fraudulent certificates issued by these CAs could have been trusted by default" in Chrome. Chrome refuses publicly trusted certificates without CT proofs, so an unlogged fake would fail in Chrome anyway.
Chrome also says it is working with CT log operators to reject certificates chaining to these intermediates, which closes the route of logging a fake now and using it against a client that has CT checks but no block.
One news report attributes a broader "no public TLS server certificates" statement to Mozilla. We could not find it in Mozilla's posts; it appears to conflate eMudhra's own statement about two other roots in Mozilla Bug 2083709. We treat it as unverified. (E-021, E-027)
Why an updated browser is not the end of it
Revocation is a statement by the CA. Whether a client acts on it depends on the client. Browsers fixed themselves through push updates. Everything else trusts certificates through its own layer, and each layer has its own fix and its own way to check it.
* Apple and Microsoft distrust is reported by the disclosure site; we found no first-party statement. "May accept" assumes the client still trusts a root on the path and does not enforce CT. Not every application in a category is affected.
The software remediation matrix
Fixed versions are taken from official releases or commits. Where a fix is only listed by the disclosure site, or the release notes do not describe it, we say so. Projects took different approaches: some block the eight keys, some remove one or more emSign roots.
Side-effect warning from Mozilla: removing the root "will impact the availability of some servers" for non-Firefox NSS users. Servers using legitimate certificates from these emSign hierarchies need new certificates. (E-013, E-015–E-020)
Enterprise investigation priorities
Method. Priority combines three qualitative judgements: how likely the area is to still trust the keys (mitigation coverage), how bad a successful abuse would be (impact), and how hard the prerequisites are. These are not probabilities. Re-rate them against your own estate.
Why TLS inspection rates high: an inspection proxy validates the upstream certificate on the user's behalf and then re-signs it with its own trusted CA. If the proxy still trusts these intermediates, the browser's own block never sees the original chain.
The enterprise remediation playbook
- 01 · DISCOVERFind what trusts the chainsInventory runtimes, CA bundles, base images, appliances and Windows signing trust. Owner: platform + security engineering. Evidence: SBOM and asset list with trust source per system.
- 02 · IDENTIFYMap certificates and pathsSearch stores and bundles for the 3 roots and 16 certificates by SPKI and fingerprint; list your own emSign-issued certificates. Owner: PKI team. Evidence: match report.
- 03 · VERIFY FIXESUse only confirmed vendor fixesCheck each component against the matrix above and the vendor's own release record. Owner: application owners. Evidence: version pins with release links.
- 04 · UPGRADERebuild and redeployGo binaries, containers, Python and Rust apps, desktop apps; deny-list locally where no fix exists. Owner: DevOps. Evidence: deployment records for running workloads.
- 05 · VALIDATEProve the chains are rejectedTest each client class against a lab chain that uses an affected intermediate certificate. Owner: security testing. Evidence: rejection logs per client class.
- 06 · INVESTIGATELook back for abuseSearch TLS and proxy logs for chains with these issuers; hunt for binaries signed under the CS intermediates. Owner: SOC. Evidence: hunt queries, results, time range.
- 07 · DOCUMENTRecord residual riskList systems that cannot be fixed, compensating controls and owners. Brief the risk committee. Owner: CISO office. Evidence: signed-off risk register entry.
One CA's keys, seven layers of dependants
Trust flows left to right. Fixes have to travel the same way, and every arrow is a place where a fix can stall. The map explains how the exposure can spread; it does not mean every dependant service was affected.
Ten controls this incident tests
The incident does not show that any particular organisation failed these controls. It shows why each one matters when a trusted CA fails.
Six headline claims, checked one by one
The right-hand column is the wording we consider safe to publish.
Disclosure site; Chrome · Primary Unchanged Yes: Chrome corroborated; CA revoked all as cACompromise “Eight eMudhra intermediate CA private keys were compromised, as corroborated by the Chrome Root Program.”
Disclosure data; Chrome · Primary Narrowed: 16 certificate objects, not 8 Yes: certificate usage fields and Chrome's post agree “Eight keys: six TLS intermediates (DV, OV, EV) and two code-signing intermediates, each in two certificates.”
roots.json, impacted-intermediates.json · Primary data Qualified Partly: issuers confirmed; ECC G3 cross-sign inferred “They were issued by emSign Root TLS CA - G3, emSign Root CS CA - G3 and Sectigo AAA; browser trust likely ran via an emSign ECC Root CA - G3 cross-sign.”
Disclosure site; Chrome; Mozilla · Mixed Narrowed Chrome and Mozilla confirmed; Apple and Microsoft only reported “Chrome and Firefox are confirmed blocked; Apple and Microsoft blocking is reported but not confirmed by those vendors.”
Disclosure site; vendors · Mixed Narrowed Go, NSS, webpki-roots, Firefox, Homebrew confirmed; certifi partly; Electron not documented “Go, NSS, Firefox, webpki-roots and Homebrew have confirmed fixes; Node.js and Composer are pending.”
Chrome; one news report attributes it to Mozilla · Primary (Chrome) Scope-limited Yes, for Chrome's stated scope “Chrome found no TLS certificates under the six TLS intermediates logged to CT before its 17 Oct block.”
An Indian CA, a global trust chain, and Indian obligations
The parent roots belong to eMudhra Technologies Limited (C=IN), listed on Indian exchanges. The compromised intermediates were operated through its Dutch and US entities. For Indian organisations, three practical questions follow.
eMudhra's only exchange filing found up to the cutoff (NSE, 19 Oct 2026) is an earnings-call notice that does not mention the incident. Whether further disclosure is required is a question for eMudhra and its regulators; we make no claim either way. (E-026)
For the board and the security leadership team
What happened. Someone obtained the private keys of eight intermediate certificate authorities run by eMudhra's Dutch and US entities. Six can issue website (TLS) certificates and two can issue code-signing certificates. A researcher proved possession to browser makers on 17 October 2026.
Why it matters. Whoever holds such keys can mint certificates that software trusts. Website certificates could be used to impersonate services; code-signing certificates could make malware look legitimate.
What is confirmed. The compromise; all 16 related certificates revoked; Chrome and Firefox blocking within hours; fixes in Go, NSS, Rust's root bundle, Firefox and Homebrew; and Chrome's finding that no TLS certificates from these CAs were in CT before its block.
What remains uncertain. How the keys were taken and who else holds them; whether the code-signing keys were used; Apple's and Microsoft's actions beyond the researcher's report; when Node.js, PHP, Java and Linux distributions will ship fixes.
Who should investigate. Platform and DevOps teams (runtimes, containers), the PKI owner (certificates and trust stores), network security (proxies, TLS inspection), endpoint security (code-signing trust) and the SOC (log review).
Immediate actions. Rebuild Go services, update CA bundles and redeploy containers; confirm proxies and appliances distrust the chains; replace any certificates you hold from affected emSign hierarchies; hunt for binaries signed under the two code-signing CAs.
Long-term lesson. Trust lives in many places, not just the browser. Treat CA bundles as software dependencies, know which trust store every system uses, and be able to prove a distrust change reached production.
All 16 certificate objects
Transcribed from the researcher's impacted-intermediates.json; CCADB record IDs are from the Common CA Database. The 8 SPKI hashes match those in Go's fix. Each pair of rows is one key. eMudhra-issued certificates are signed with ecdsa-with-SHA384, Sectigo cross-signs with sha256WithRSAEncryption. Verify against the source files before using them in production blocklists.
eMudhra BV, NL · TLS DV emSign Root TLS CA - G3
CCADB A012302 SPKI ebed6475c2c2d80fcb199f3fe8dd6e6b3ce60b77eb15d4e42c3dec0c6f5b5105
SKI e21e2fe71c19390e554b62c120245735248a2514 SHA-256 42c4accd12c4f59597925e1a08a7a90102608543809308d50ec427e118ba1493
Serial a4aee678f23362b4c0e460b772f214 2025-04-30 → 2040-04-28
Revoked 18 Oct 09:24:32 UTC
CCADB A012347 SPKI ebed6475c2c2d80fcb199f3fe8dd6e6b3ce60b77eb15d4e42c3dec0c6f5b5105
SKI e21e2fe71c19390e554b62c120245735248a2514 SHA-256 45a883f349aedfd5f3a649b5498ffb121712ba8b448f3f2a91dbc5a766fcddbe
Serial a024fdf4ba665c785ce4a020483858b7 2025-05-14 → 2028-12-31
Revoked 19 Oct 10:35:36 UTC
eMudhra BV, NL · TLS OV emSign Root TLS CA - G3
CCADB A012308 SPKI 43bffa19d6ef651451f6841e019931e96f6f2eaeff28ab4b6f1ce4576de2717b
SKI 9bd86551afe7e72c37ad08ee6919d9bf3784ae0a SHA-256 98b896625c0c230adeec3eb2cf6aad5001ecf9156a68644e82374ce5833bc25b
Serial 6cada367fb1c100088120ea202d568 2025-04-30 → 2040-04-28
Revoked 18 Oct 09:37:19 UTC
CCADB A012354 SPKI 43bffa19d6ef651451f6841e019931e96f6f2eaeff28ab4b6f1ce4576de2717b
SKI 9bd86551afe7e72c37ad08ee6919d9bf3784ae0a SHA-256 5f1ded4dd590af74631290cf073b122a2aac6a1fa479778a0bd43579bd832699
Serial e94223bde92f914e5ab9acabfdac3710 2025-05-14 → 2028-12-31
Revoked 19 Oct 10:35:36 UTC
eMudhra BV, NL · TLS EV emSign Root TLS CA - G3
CCADB A012304 SPKI e0254c7fcdc265e2f0f8a428dabb75ab4ae039b4872d62f5ee57f0877d5a8a41
SKI 3edc20d9894698877b873fd88147b25c15d84706 SHA-256 e7568fe6e12331f4fd7de61da4c7559d0f8eb192a218d4741a3ba75184333838
Serial c7c41efe92d825f05eae841a4a82c1 2025-04-30 → 2040-04-28
Revoked 18 Oct 09:28:53 UTC
CCADB A012333 SPKI e0254c7fcdc265e2f0f8a428dabb75ab4ae039b4872d62f5ee57f0877d5a8a41
SKI 3edc20d9894698877b873fd88147b25c15d84706 SHA-256 579480aea166290bd3c643589e795fc0d0e54e86505d180f1dff99efd3199512
Serial d8f8685e4f2bd9d82402a85a1c1eb731 2025-05-14 → 2028-12-31
Revoked 19 Oct 10:35:36 UTC
eMudhra Inc, US · TLS DV emSign Root TLS CA - G3
CCADB A012294 SPKI 49dd353dc2b919a3770645117d0e60c16115e7d1bc259eefe734b00ea434fe5f
SKI ae7e105c3c2996c1a847270559f1e03dd4e50af3 SHA-256 0164d7ceae5bb909c272af151ff44b1177ae9b47d9424b94f1d9558c30934d19
Serial 588b2e3c2bb8cda13e1a1209254321 2025-04-30 → 2040-04-28
Revoked 18 Oct 09:27:07 UTC
CCADB A012342 SPKI 49dd353dc2b919a3770645117d0e60c16115e7d1bc259eefe734b00ea434fe5f
SKI ae7e105c3c2996c1a847270559f1e03dd4e50af3 SHA-256 62b7f9868263f72f6911fc78ceaf72c1979158b7368bf648683bb2aa39b02e72
Serial 91f347f1a5b7d39962b95e0ee4e299d1 2025-05-14 → 2028-12-31
Revoked 19 Oct 10:35:36 UTC
eMudhra Inc, US · TLS OV emSign Root TLS CA - G3
CCADB A012300 SPKI 63ecefee431d49523bc1136c4e72d0206a477086caf606cd5cf025686c109cf8
SKI 34eaea0cebc90adaf9d0c5e2ed9b78c9879e1b6c SHA-256 cb6e15165ac802e9b3f993f16c25d41f4e81c21ebde71ae1b012ac00bf9c7c3f
Serial 296926c227a3a1526392b19482a504 2025-04-30 → 2040-04-28
Revoked 18 Oct 09:38:46 UTC
CCADB A012343 SPKI 63ecefee431d49523bc1136c4e72d0206a477086caf606cd5cf025686c109cf8
SKI 34eaea0cebc90adaf9d0c5e2ed9b78c9879e1b6c SHA-256 7485b51c0ed192878fa1d2f948fb529ae1842cc5086c4b67f7be5b2039de9489
Serial 8d5a4811939ef447d77111cdd9849ae9 2025-05-14 → 2028-12-31
Revoked 19 Oct 10:35:36 UTC
eMudhra Inc, US · TLS EV emSign Root TLS CA - G3
CCADB A012296 SPKI 5c0660a2b164910d8ff589c18e14552e9e0ec237dcefe2cb736d41a4811f81a0
SKI a6255e80a94db7f3967c1bc791df92bcee4beb5f SHA-256 432ec25f0d28de9006d97bf752f17bbb2cd41f669933fcb072d9a1148d0261f3
Serial 8009928a64107601af05fa2f19f109 2025-04-30 → 2040-04-28
Revoked 18 Oct 09:30:49 UTC
CCADB A012334 SPKI 5c0660a2b164910d8ff589c18e14552e9e0ec237dcefe2cb736d41a4811f81a0
SKI a6255e80a94db7f3967c1bc791df92bcee4beb5f SHA-256 fd9d5c2dbbd4995ab69b8d50c439d9527b00529199c2fd01b2174eb58f07021f
Serial 05f078752dece7a1bb8595d303167171 2025-05-14 → 2028-12-31
Revoked 19 Oct 10:35:36 UTC
eMudhra BV, NL · Code signing emSign Root CS CA - G3
CCADB A012306 SPKI ec4ffa1ad0ac88081314b7aaffef6a91f97cd57291bb5ba686c5415f5eb4f6b6
SKI 79fae8eccfdb0d758da458d69fb6eddc7c49dee6 SHA-256 9e39de2881273acc225a149c72ba3e0f51424963669ab633ee1dc7df5db067b4
Serial 7818933f8f85b4619a2b35fba83d0a 2025-04-30 → 2040-04-28
Revoked 18 Oct 09:33:37 UTC
CCADB A012352 SPKI ec4ffa1ad0ac88081314b7aaffef6a91f97cd57291bb5ba686c5415f5eb4f6b6
SKI 79fae8eccfdb0d758da458d69fb6eddc7c49dee6 SHA-256 a496e23ac0cab8155fc9b117b97eae368efcbb9041aec8804d5a308d2d01c2d8
Serial 41e32b73ac185d6ce0d7480bacf84e69 2025-05-14 → 2028-12-31
Revoked 19 Oct 10:35:36 UTC
eMudhra Inc, US · Code signing emSign Root CS CA - G3
CCADB A012298 SPKI 92c063d67e8f14db71d288e11266ffdaf69cbf115f7bab14f3bc2f68d25e0e30
SKI ee6f73298d6fbfa7b31bc39534f61556447866b7 SHA-256 4b2460a466f95fd40113bcdcca2ceb29b3b093921de45474da7df48874c630b1
Serial 544b7f922c31ae220a4a922916f6e6 2025-04-30 → 2040-04-28
Revoked 18 Oct 09:35:24 UTC
CCADB A012350 SPKI 92c063d67e8f14db71d288e11266ffdaf69cbf115f7bab14f3bc2f68d25e0e30
SKI ee6f73298d6fbfa7b31bc39534f61556447866b7 SHA-256 84112972b8e59d14560ae7e7119654474aad119990cf3722bfc1e3b91615e1fd
Serial d6a5ef613b390f32ef9cdf349f772841 2025-05-14 → 2028-12-31
Revoked 19 Oct 10:35:36 UTC
SHA-256 7dd78d5f4f13459a83dff9abbba62edbaf6f2d102bf257fd712f4d9f2746ed8d
SPKI c619e4780ed8e0abeda24ad732567de4383a7ea941338f6d1a7d1b49ac792fe9
SHA-256 f2edaaff3d9b701fb4d14c9f285f8c0bad90fc3bcc1fa07d47f4718edaba34a5
SPKI 0a6c2b2ca5b364207954171987ac9d2178561569d8205457e77ca90c32ede282
SHA-256 d7a7a0fb5d7e2731d771e9484ebcdef71d5f0c3e0a2948782bc83ee0ea699ef4
SPKI bd153ed7b0434f6886b17bce8bbe84ed340c7132d702a8f4fa318f756ecbd6f3
SHA-256 86a1ecba089c4a8d3bbe2734c612ba341d813e043cf9e8a862cd5c57a36bbe6b
SPKI 8d417db2dd8bf5e3084d1e3f196d583849d81bdd4c00c70b9d39369e96b8c782
Claims, evidence and confidence
Confidence rates the specific claim, not the reputation of its source. High: shown by primary evidence or independently corroborated. Moderate: credible but not reproduced. Low: incomplete or indirect. Unknown: no evidence either way.
20 Oct 2026 Primary High —
17–20 Oct 2026 Primary (reporter) + corroboration High Not reproduced by us: proof.zip could not be downloaded
20 Oct 2026 Primary data High —
20 Oct 2026 Primary High —
20 Oct 2026 Primary data High —
20 Oct 2026 Primary data High —
20 Oct 2026 Primary data + technical inference High (status); Moderate (path) Cross-certificate itself not examined
18–19 Oct 2026 Primary High —
20 Oct 2026 Primary High —
20 Oct 2026 Primary High —
20 Oct 2026 Primary High NSS post says OneCRL delivered "Saturday 19th"; conflicts with 17 Oct
20 Oct 2026 Primary High (158.0.1); Moderate (ESR versions) Mozilla blog post could not be read
20 Oct 2026 Primary High —
20 Oct 2026 Secondary (reporter) Moderate No first-party Apple or Microsoft statement found
19 Oct 2026 Primary High Some reports date the release 20 Oct
19 Oct 2026 Primary High —
18–20 Oct 2026 Primary + technical inference Moderate Net diff not directly confirmed
20 Oct 2026 Secondary (reporter) Low What changed is undocumented
20 Oct 2026 Primary High Release dates unknown
20 Oct 2026 Primary High —
20 Oct 2026 Primary High (for stated scope) Logs and windows searched not listed
20 Oct 2026 Primary (stated intent) High Release date not given
20 Oct 2026 Primary (absence) + secondary Unknown eMudhra incident report
20 Oct 2026 Technical inference Low (absence of evidence) Code-signing issuance not logged
~13 Oct 2026 Primary Low (link to this incident) Same person? Same issue?
19 Oct 2026 Primary High (fact) Whether a disclosure will follow
20 Oct 2026 Secondary Low Likely conflated with eMudhra's statement about other roots
- Root cause: unknown. Needs eMudhra's incident report or the contents of Mozilla Bug 2083382.
- Other key holders: unknown. Needs forensic findings from eMudhra.
- Code-signing misuse: unknown. Needs telemetry from endpoint and malware-analysis vendors on signatures under the two CS intermediates.
- Apple and Microsoft: reported only. Needs vendor advisories or update records.
- Firefox trust path: inferred. Needs the emSign ECC Root CA - G3 to TLS G3 cross-certificate.
- Electron and certifi: release notes do not describe the change. Needs the diffs or maintainer statements.
- CT scope: Chrome does not list the logs or windows searched.
- Timing conflicts: NSS post says OneCRL was delivered "Saturday 19th"; other primary sources say 17 Oct. Go's release is dated 19 Oct by go.dev and 20 Oct by some reports.
- Our own limits: we could not download proof.zip to reproduce the signatures, could not read Mozilla's security blog post (server error), and did not parse Name Constraints, Key Usage or EKU from the certificates ourselves.
Every material claim was traced to its originator and checked against primary records: the researcher's certificate data, root-program posts, vendor advisories, release pages and commits. News reports were used for context and to find primary sources, never as the sole basis for a technical fact. Certificate details were transcribed from the published JSON and cross-checked against the SPKI list in Go's commit. No untrusted code was executed.
Research cutoff: 20 October 2026. Information published later will be added in a separate, dated update section rather than edited into the text above.
This dossier is research, not legal advice. Logos and screenshots are deliberately not used; all figures trace to the evidence ledger.
Frequently asked questions
What happened in the eMudhra CA compromise?
The private keys of eight intermediate certificate authorities operated by eMudhra's Dutch and US entities were exposed. A researcher proved possession to browser root programs on 17 October 2026, and the Chrome Root Program corroborated the finding. All 16 certificates containing those keys were revoked as cACompromise on 18 and 19 October.
Why are there 16 certificates but only eight keys?
Each of the eight intermediate keys appears in two certificates: one issued by an eMudhra root (emSign Root TLS CA - G3 or emSign Root CS CA - G3) and a cross-certificate issued by Sectigo's AAA Certificate Services. Blocking by public key (SPKI) covers both.
Were any fraudulent certificates issued?
No public evidence shows it. Chrome reported that no TLS certificates chaining to the six TLS intermediates were logged to Certificate Transparency before its 17 October block. That statement does not cover the two code-signing intermediates, whose certificates are not logged to CT.
Are browsers protected?
Chrome blocked the six TLS intermediates by CRLSet at 19:45 UTC on 17 October, and Mozilla blocked them through OneCRL the same evening and shipped Firefox 158.0.1. The researcher reports Apple blocked them on 19 October and Microsoft on 20 October; we found no first-party statement from either.
What should enterprises do now?
Rebuild Go services with Go 1.27.3 or 1.26.10, update CA bundles such as certifi, webpki-roots, NSS and Homebrew ca-certificates, redeploy containers, confirm proxies and TLS-inspection appliances distrust the affected SPKIs, replace certificates from affected emSign hierarchies, and hunt for binaries signed under the two code-signing CAs.
How did the keys leak?
Unknown. As of 20 October 2026, neither eMudhra nor Sectigo has published an incident report, and the Mozilla bug tracking the issue is restricted. It is not known how, when, or whether anyone other than the researcher holds the keys.