01 · Why it is dangerous
A certificate authority is a master key to the padlock.
When your browser shows a padlock, it is trusting a chain: the website's certificate was signed by an intermediate CA, which was signed by a root your device trusts. Whoever holds an intermediate's private key can sign a certificate for any domain, and every device that trusts that chain will believe it.
The eight eMudhra intermediates used P-384 keys whose private scalars were tiny integers, all below 256. That is not a key: it is a number you can guess in under a second. Several people independently recovered them after disclosure. No breach of eMudhra's servers was needed.
Microsoft's advisory describes the misuse this enables but does not say the keys were exploited. That is the uncomfortable part: no one can know. A forged certificate signed with a recovered key looks identical to a legitimate one.
Impersonate any website
A forged TLS certificate for your bank, your mail server or your VPN gateway, accepted without warning by anything still trusting the chain. Encrypted traffic can be intercepted and read.
Sign malware as trusted software
Two of the keys were code-signing intermediates. Signed binaries pass checks that were designed to stop exactly this.
Many clients never check
eMudhra revoked the intermediates, but embedded devices, Java applications and appliances frequently skip revocation. For them, trust ends only when the certificate is removed from the store.
02 · Who is affected
Your browser is fine. The rest of your network is the question.
Auto-updating platforms were patched within days. Everything that carries its own trust store, or does not receive updates, still trusts the compromised hierarchy until someone changes it.
Windows, Edge, WebView2
Disallowed CTL updated 20 Oct; seven certificates removed from the trust list 26–27 Oct via out-of-band updates. Disconnected devices need the CTL distributed manually.
Chrome, Firefox, Safari
Chrome and Mozilla removed emSign ECC Root CA – G3; CRLSet/OneCRL block the intermediates. Keep browsers updating.
Linux system CA bundles
Debian/Ubuntu ca-certificates, Fedora/RHEL trust. Depends on your distro shipping an update and you installing it. Editing the generated bundle is not persistent distrust.
Java trust stores
cacerts in every JDK/JRE and application-bundled JKS/PKCS12 stores. Eclipse Temurin removed the roots on 27 Oct; most deployed JVMs carry their own copy and were never told.
Appliances, IoT, media players
Anything with an application-owned PEM bundle, an EDK2 firmware CA collection or a vendor-frozen root store. Rarely checks revocation; often never updated.
Your own services
If any of your certificates chain to an eMudhra G3 hierarchy or the Sectigo AAA cross-sign, they will start failing as trust is removed. Reissue from another CA now.
03 · Vendor fixes
Take the vendor update first. Always.
Native OS and browser updates are the correct fix for anything that receives them. Keep automatic certificate trust updates enabled; for disconnected Windows fleets, distribute the updated Disallowed Certificate Trust List yourself.
Microsoft's response (MSRC) ↗Out-of-band updates remove six eMudhra G3 roots and the AAA Certificate Services cross-sign; the Disallowed CTL blocks the eight intermediates.
KB5134133 · KB5134134 · KB5134130 · KB5134137 · KB5134140 · KB5134125 · KB5134124Same seven certificates removed from the Edge trust list on 27 Oct; CRLSet update delivered through component updates, no new browser version needed.
Automatic via component updaterRemoved emSign ECC Root CA – G3; reviewing emSign Root CA – G1.
Chrome Root ProgramEmergency removal of emSign ECC Root CA – G3 after independent key recoveries; emSign Root CA – G1 retained for now.
Firefox / NSS root storeEclipse Temurin removed emSign ECC Root CA – G3 and Sectigo AAA Certificate Services from cacerts on 27 Oct. Other JDK vendors: check your release notes.
Reissue application-bundled stores yourself04 · The list
23 SHA-256 fingerprints.
Snapshot of Microsoft's Trusted Root Program announcement of 26 October 2026. The 16 intermediate entries are the compromised keys (two certificates each). The 7 trust anchors are a broader distrust decision, not all compromised keys; one is Sectigo's AAA cross-sign.
Compromised intermediates · 16
42c4accd12c4f59597925e1a08a7a90102608543809308d50ec427e118ba1493
45a883f349aedfd5f3a649b5498ffb121712ba8b448f3f2a91dbc5a766fcddbe
0164d7ceae5bb909c272af151ff44b1177ae9b47d9424b94f1d9558c30934d19
62b7f9868263f72f6911fc78ceaf72c1979158b7368bf648683bb2aa39b02e72
e7568fe6e12331f4fd7de61da4c7559d0f8eb192a218d4741a3ba75184333838
579480aea166290bd3c643589e795fc0d0e54e86505d180f1dff99efd3199512
432ec25f0d28de9006d97bf752f17bbb2cd41f669933fcb072d9a1148d0261f3
fd9d5c2dbbd4995ab69b8d50c439d9527b00529199c2fd01b2174eb58f07021f
98b896625c0c230adeec3eb2cf6aad5001ecf9156a68644e82374ce5833bc25b
5f1ded4dd590af74631290cf073b122a2aac6a1fa479778a0bd43579bd832699
cb6e15165ac802e9b3f993f16c25d41f4e81c21ebde71ae1b012ac00bf9c7c3f
7485b51c0ed192878fa1d2f948fb529ae1842cc5086c4b67f7be5b2039de9489
9e39de2881273acc225a149c72ba3e0f51424963669ab633ee1dc7df5db067b4
a496e23ac0cab8155fc9b117b97eae368efcbb9041aec8804d5a308d2d01c2d8
4b2460a466f95fd40113bcdcca2ceb29b3b093921de45474da7df48874c630b1
84112972b8e59d14560ae7e7119654474aad119990cf3722bfc1e3b91615e1fd
Trust-list removals · 7
86a1ecba089c4a8d3bbe2734c612ba341d813e043cf9e8a862cd5c57a36bbe6b
bbd8b3d745efb79198d93b9c482b9d934537325729ea2f02c129261f91be2e3d
f2edaaff3d9b701fb4d14c9f285f8c0bad90fc3bcc1fa07d47f4718edaba34a5
f76a0d440c418dc5b362be8e11e0a5d06023f4396093e4f455827bf55153d8a4
7dd78d5f4f13459a83dff9abbba62edbaf6f2d102bf257fd712f4d9f2746ed8d
75d2ce75979cf2a43b172c9f89f733dda2136031db4bbf3698b053714c077155
d7a7a0fb5d7e2731d771e9484ebcdef71d5f0c3e0a2948782bc83ee0ea699ef4
Removing a root breaks legitimate certificates issued under it, including eMudhra customers who did nothing wrong. Microsoft is evaluating the remaining eMudhra roots separately; Mozilla removed emSign ECC Root CA – G3 and is keeping emSign Root CA – G1 for now.
05 · emudhra-remover
For everything the vendors don't reach.
An MCP server for Linux that lets your agent audit trust stores across your devices and remove the 23 fingerprints with a backup, a saved plan and verified rollback. Exact SHA-256 matching only. Audit mode by default. MIT licensed. No API key.
“List my configured devices, scan each trust bundle for the eMudhra incident policy, and show me removal plans with the affected certificates and store hashes.”
Set EMUDHRA_ENABLE_WRITES=1 only after reviewing the plan. Plans expire after 15 minutes; rollback never does.
Scan
scan_target reads one store and reports exact SHA-256 matches. Nothing changes.
Plan
plan_removal saves the original bytes and a bound plan in a private SQLite journal. Still nothing changes.
Apply
apply_plan rewrites atomically, preserves owner/mode/xattrs, verifies written bytes. Requires EMUDHRA_ENABLE_WRITES=1.
Rollback
rollback_plan restores the exact original if nothing else changed the file. Conflicts are never overwritten.
Adapters · v0.1
pem-bundle
Application-owned PEM file
Local or over SSH. Removes matching certificates.
openssl-trusted-bundle
OpenSSL trusted PEM (X509_AUX)
Adds an explicit anyExtendedKeyUsage rejection instead of deleting.
pkcs7
Unsigned PKCS#7 / P7B collection
DER or PEM. Signed messages are rejected, not stripped.
debian
Debian/Ubuntu ca-certificates
Persistent package-root deselection plus native regeneration.
java-jks / java-pkcs12
Java trust stores
Trusted-certificate entries only; needs a JDK 17+ on the controller.
nss-sql
Closed NSS cert9.db
Native certutil distrust; empty password, no private keys, app closed.
edk2-cacerts
EDK2 HTTPS certificate collection
File remediation only; no firmware variable access.
06 · What this does not do
“No matches” is not “you are safe.”
- ×It removes exact fingerprint matches from the configured store. It does not install an SPKI denylist, implement revocation checking, or find alternate certificates carrying a compromised key.
- ×It cannot prove every application on a device is protected. Applications cache trust; nothing is restarted for you.
- ×Removing an entry from a generated bundle like /etc/ssl/certs/ca-certificates.crt is not persistent OS distrust. Use the debian adapter or your distribution's native mechanism.
- ×Windows, macOS, Fedora/RHEL native stores, Android, iOS and immutable firmware are not covered. Vendor updates are the fix there.
- ×Firefox built-in roots and most personal browser profiles are out of scope; the NSS adapter is deliberately narrow.
- ×A compromised SSH target can lie about its own audit. There is no remote attestation.
- ×The write flag allows apply and rollback; it does not prove a human approved anything. Configure approval in your MCP client.
07 · FAQ
Plain answers.
I just use a laptop and a phone. Do I need to do anything?+
Let your operating system and browser update. Windows, Edge, Chrome, Firefox and Java distributions have already shipped fixes. This page and the tool are for people who run servers, appliances or devices that do not update themselves.
Were the keys actually abused?+
Unknown. Microsoft's advisory describes what the keys would allow but does not establish exploitation. A certificate forged with a recovered key is indistinguishable from a real one, which is why trust is being removed rather than waiting for evidence.
eMudhra revoked the certificates. Isn't that enough?+
Only for clients that check revocation, and many do not: embedded devices, older Java applications, appliances. For those, trust ends when the certificate leaves the store.
Why are roots being removed if only intermediates were weak?+
Root programs decided the hierarchy could no longer be relied upon, which is a broader trust decision than blocking eight known keys. That decision has side effects: legitimate eMudhra certificates break too, and the Sectigo AAA cross-sign is included because it signed the weak keys.
Can the tool damage my system?+
It is designed not to: audit mode by default, exact-byte backups before any write, atomic replacement, verified rollback, and refusal to overwrite anything changed by someone else. Still, use a maintenance window and read SECURITY.md first. No real device was modified during development.
Does it need an AI model or send data anywhere?+
No. It is a local stdio MCP server; whichever client you already use drives it. There is no HTTP endpoint, no telemetry and no network feed that can change the bundled policy.