EMudhra Intermediate CA Compromise
Security Alert: EMudhra Intermediate CA Compromise
Date: October 20, 2026
Status: Secure Compromised
A critical security breach has occurred involving eight intermediate Certificate Authority (CA) certificates managed by eMudhra. The private keys associated with these certificates have been leaked, posing a significant risk to the global trust infrastructure.
These compromised intermediates chain up to root certificates that are trusted by major root programs, including:
- Apple
- Microsoft
- Mozilla
- Chrome
- Various other downstream trust stores.
Proof of Compromise
To validate the breach, a researcher named Wayne demonstrated control over the private keys. He signed a specific string using the private key of each of the eight affected intermediates.
"We have a problem here"
The evidence was submitted to Root Program Teams on October 17th. The proof.zip file contains the signed message, the corresponding certificates, and the public keys.
Mathematical Representation of the Proof
The verification process follows the standard digital signature logic:
Technical Verification
You can verify the compromise using openssl with the following commands:
# Extract public key and compare
openssl x509 -in EM-DV-TLS-CA-G3B.crt.pem -noout -pubkey | diff - EM-DV-TLS-CA-G3B.pub.pem
# Verify the signature on the message
openssl dgst -sha384 -verify EM-DV-TLS-CA-G3B.pub.pem -signature EM-DV-TLS-CA-G3B.sig message.txt
Trust Chain Visualization
Response and Remediation
Actions Taken
The industry has responded rapidly to mitigate the risk of man-in-the-middle (MITM) attacks.
- Blocking: Firefox and Chrome blocked the certificates on Oct 17; Apple followed on Oct 19.
- Disclosure: Downstream stores were officially notified on Oct 19.
- Revocation: The CA has revoked the compromised certificates.
- Rapid Distribution: Mozilla, Apple, and Chrome utilized
OneCRL,CRLite, andCRLSetsto push updates.
The Remaining Risk
While major browsers are safe, many clients do not check revocation lists. For these systems, the only solution is a software update to remove the compromised intermediates from the local trust store.
How to Test Your System
To determine if your command-line tools (like curl) are still trusting the compromised keys, attempt to connect to these test endpoints:
curl https://dv-g3b-emudhra.we-have-a-problem.com/curl https://dv-g3b-aaa-emudhra.we-have-a-problem.com/
- Success (Error): If you see a certificate error, your client is safe.
- Failure (No Error): If the connection succeeds, your client is vulnerable.
For offline verification, refer to chains.zip for PEM-formatted chains and OpenSSL instructions.
Software Patch Status
Users are urged to update their systems immediately.
| Software | Patched Version |
|---|---|
| Ubuntu | ca-certificates 20260816ubuntu0.22.04.1, 20260816ubuntu0.24.04.1, 20260816ubuntu0.26.04.1, 20260816ubuntu0.26.10.1 |
| Debian | ca-certificates (Pending) |
| Arch Linux | ca-certificates-mozilla 3.131.1-1 |
| Gentoo | ca-certificates 20260816.3.125 |
| FreeBSD | ca_root_nss (Pending) |
| Chainguard | ca-certificates 20260909-r3 |
| NSS | 3.131.1 |
| curl | CA bundle 2026-10-20 |
| Homebrew | ca-certificates 2026-09-25_1 |
| Go | 1.27.3, 1.26.10 |
| Node.js | (Pending) |
| Python | certifi 2026.10.19, pip 26.2.2, uv 0.13.4 |
| Rust | rustls-webpki 0.103.16, webpki-roots/webpki-root-certs 1.0.10 |
| Electron | 44.9.1, 43.8.1, 42.11.16 |
| Bun | (Pending) |
| Composer | ca-bundle (Pending) |
| Elixir | castore 1.0.22 |
Additional updates can be tracked at github.com/galadran/we-have-a-problem.com.
Manual Workarounds
macOS
While macOS blocks these intermediates generally, /usr/bin/curl uses /etc/ssl/cert.pem and ignores revocation. To manually purge the affected roots:
sudo cp /etc/ssl/cert.pem /etc/ssl/cert.pem.bak
awk '/^(###|===) /{skip=0} /^=== .*\/CN=(AAA Certificate Services|emSign ECC Root CA - G3)$/{skip=1} !skip' /etc/ssl/cert.pem.bak | sudo tee /etc/ssl/cert.pem /dev/null
Linux Distributions
If a patched package is not yet available, expert users can manually distrust the roots.
Debian & Ubuntu
# Run as root
sed -i -e 's|^mozilla/emSign_ECC_Root_CA_-_G3.crt|!|' /etc/ca-certificates.conf
update-ca-certificates
Alpine
# Run as root
apk add ca-certificates
sed -i -e 's|^mozilla/emSign_ECC_Root_CA_-_G3.crt|!|' /etc/ca-certificates.conf
update-ca-certificates
Fedora, RHEL, CentOS, Rocky, Alma, Amazon Linux 2023
# Run as root
d=/etc/pki/ca-trust/source/blocklist; [ -d $d ] || d=/etc/pki/ca-trust/source/blacklist
trust extract --overwrite --format=pem-bundle --filter='pkcs11:object=Comodo%20AAA%20Services%20root;type=cert' $d/Comodo_AAA_Services_root.pem
trust extract --overwrite --format=pem-bundle --filter='pkcs11:object=emSign%20ECC%20Root%20CA%20-%20G3;type=cert' $d/emSign_ECC_Root_CA_-_G3.pem
update-ca-trust
openSUSE & SLES
# Run as root
d=/etc/pki/trust/blocklist; [ -d $d ] || d=/etc/pki/trust/blacklist
trust extract --format=pem-bundle --filter='pkcs11:object=Comodo%20AAA%20Services%20root;type=cert' $d/Comodo_AAA_Services_root.pem
trust extract --format=pem-bundle --filter='pkcs11:object=emSign%20ECC%20Root%20CA%20-%20G3;type=cert' $d/emSign_ECC_Root_CA_-_G3.pem
update-ca-certificates
Arch Linux
# Run as root
trust extract --format=pem-bundle --filter='pkcs11:object=emSign%20ECC%20Root%20CA%20-%20G3;type=cert' /etc/ca-certificates/trust-source/blocklist/emSign_ECC_Root_CA_-_G3.pem
update-ca-trust
NixOS
Add the following to your configuration:
security.pki.caCertificateBlacklist = [
"Comodo AAA Services root"
"emSign ECC Root CA - G3"
];
NetBSD (10+)
# Run as root
certctl untrust /usr/share/certs/mozilla/all/emSign_ECC_Root_CA_-_G3.pem
certctl untrust /usr/share/certs/mozilla/all/Comodo_AAA_Services_root.pem
Additional Information
- Trust Store Operators: Please refer to the discussion thread in the Mozilla dev-security-policy forum.
- Technical Details: A full list of the eight compromised intermediates and their Sectigo cross-signs is available in
impacted-intermediates.json.