Repository navigation
Stop trusting the emSign roots Mozilla removed - #1281
Merged
Merged
Conversation
The private keys of eight eMudhra intermediate CAs were compromised (https://emudhra.we-have-a-problem.com). Six of the incident's twelve test hosts chain to emSign ECC Root CA - G3 and Hex accepted them with its bundled CA store. NSS removed emSign ECC Root CA - G3, emSign Root CA - C1 and emSign ECC Root CA - C3 on 2026-10-20, but certdata.txt on the Firefox release branch, which `mix certdata` reads, still has them. The bundle is generated with mk-ca-bundle.pl 1.35 from certdata.txt on the NSS master branch. It has the same 118 certificates as castore 1.0.22 (elixir-mint/castore#90) and curl's cacert.pem from 2026-10-20. With it all twelve test hosts fail with unknown_ca. The bundle on main was last updated for v2.5.1, so this also brings in the root store changes that v2.5.2 shipped from the v2.5 branch.
Mozilla's root store changes land in NSS first and reach certdata.txt on the Firefox release branch, which mk-ca-bundle.pl reads by default, about a release cycle later. Firefox release still has the three emSign roots NSS removed on 2026-10-20, so running mix certdata added them back. castore made the same change in elixir-mint/castore#90.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The private keys of eight eMudhra intermediate CAs were compromised (https://emudhra.we-have-a-problem.com). Six of the incident's twelve test hosts chain to emSign ECC Root CA - G3, and Hex accepts them with its bundled CA store. NSS removed emSign ECC Root CA - G3 (0a2b0c7) and emSign Root CA - C1 and emSign ECC Root CA - C3 (1573410) on 2026-10-20.
mix certdatareadcertdata.txtfrom the Firefoxreleasebranch, which still has all three roots and gets NSS root store changes about a release cycle later. It now readscertdata.txtfrom the NSSmasterbranch, the same change castore made in elixir-mint/castore#90, and the bundle is regenerated with it. The bundle has the same 118 certificates as castore 1.0.22 and curl'scacert.pemfrom 2026-10-20. Connecting withHex.HTTP.SSL.ssl_opts/1, all twelve test hosts now fail withunknown_caand hex.pm, repo.hex.pm and builds.hex.pm still verify.The bundle on main was last updated for v2.5.1, so this also brings in the root store changes v2.5.2 shipped from the v2.5 branch: Atos TrustedRoot 2011, Entrust Root Certification Authority, SecureSign Root CA12 and ePKI Root Certification Authority are removed, and SECOM TLS ECC/RSA Root CA 2024 and Telia EC/RSA TLS Root CA v3 are added.