On 2026-10-17, private keys for eight eMudhra intermediate CAs were reported as trivially recoverable. A broken key-generation run in April 2025 produced tiny P-384 private keys; one was literally 4. Anyone can therefore mint certificates that clients trusting emSign ECC Root CA - G3 will accept.
Firefox, Chrome, Apple and Microsoft have blocked the intermediates. Browsers are covered.
Anything using the system CA bundle (curl, git, nix, Python, …) is not. Our nixpkgs pin (nixos-unstable, 2026-10-10) predates the fix, and the deployed bundle still trusts the root.
nixpkgs fixed it in f903b88 (cacert: 3.126 -> 3.131.1). That commit is on master but has not reached nixos-unstable yet.
Stopgap
Branch fix/distrust-emudhra-ecc-root adds security.pki.caCertificateBlacklist = [ "emSign ECC Root CA - G3" ];. I checked krypton's built bundle: the root is now rejected for serverAuth, and only that one certificate changed.
Cleanup (closes this issue)
Merge the stopgap PR and nixos-rebuild switch on all hosts
Wait for nixos-unstable to contain f903b88
Run nix flake update nixpkgs and rebuild
Remove the caCertificateBlacklist line from modules/nixos/certificates.nix
Also affected
Programs that vendor their own CA bundle (Go binaries, Node, Electron apps, Python certifi) need their own updates. nixpkgs tracks them in #576541.
## Situation
On 2026-10-17, private keys for eight eMudhra intermediate CAs were reported as trivially recoverable. A broken key-generation run in April 2025 produced tiny P-384 private keys; one was literally `4`. Anyone can therefore mint certificates that clients trusting **emSign ECC Root CA - G3** will accept.
- Firefox, Chrome, Apple and Microsoft have blocked the intermediates. **Browsers are covered.**
- Anything using the system CA bundle (curl, git, nix, Python, …) is **not**. Our nixpkgs pin (nixos-unstable, 2026-10-10) predates the fix, and the deployed bundle still trusts the root.
- nixpkgs fixed it in [`f903b88`](https://github.com/NixOS/nixpkgs/commit/f903b88037954e42a165c27b686201c2f242ae28) (`cacert: 3.126 -> 3.131.1`). That commit is on master but has not reached nixos-unstable yet.
## Stopgap
Branch `fix/distrust-emudhra-ecc-root` adds `security.pki.caCertificateBlacklist = [ "emSign ECC Root CA - G3" ];`. I checked krypton's built bundle: the root is now rejected for serverAuth, and only that one certificate changed.
## Cleanup (closes this issue)
- [x] Merge the stopgap PR and `nixos-rebuild switch` on all hosts
- [ ] Wait for nixos-unstable to contain `f903b88`
- [ ] Run `nix flake update nixpkgs` and rebuild
- [ ] Remove the `caCertificateBlacklist` line from `modules/nixos/certificates.nix`
## Also affected
Programs that vendor their own CA bundle (Go binaries, Node, Electron apps, Python certifi) need their own updates. nixpkgs tracks them in [#576541](https://github.com/NixOS/nixpkgs/issues/576541).
## References
- [Mozilla bug 2083449](https://bugzilla.mozilla.org/show_bug.cgi?id=2083449)
- [Mozilla security blog](https://blog.mozilla.org/security/2026/10/20/protecting-firefox-users-following-the-compromise-of-emudhra-intermediate-certificates/)
- [nixpkgs tracking issue #576485](https://github.com/NixOS/nixpkgs/issues/576485)
- [emudhra.we-have-a-problem.com](https://emudhra.we-have-a-problem.com/)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Situation
On 2026-10-17, private keys for eight eMudhra intermediate CAs were reported as trivially recoverable. A broken key-generation run in April 2025 produced tiny P-384 private keys; one was literally
4. Anyone can therefore mint certificates that clients trusting emSign ECC Root CA - G3 will accept.f903b88(cacert: 3.126 -> 3.131.1). That commit is on master but has not reached nixos-unstable yet.Stopgap
Branch
fix/distrust-emudhra-ecc-rootaddssecurity.pki.caCertificateBlacklist = [ "emSign ECC Root CA - G3" ];. I checked krypton's built bundle: the root is now rejected for serverAuth, and only that one certificate changed.Cleanup (closes this issue)
nixos-rebuild switchon all hostsf903b88nix flake update nixpkgsand rebuildcaCertificateBlacklistline frommodules/nixos/certificates.nixAlso affected
Programs that vendor their own CA bundle (Go binaries, Node, Electron apps, Python certifi) need their own updates. nixpkgs tracks them in #576541.
References