Repository navigation
Distrust compromised eMudhra intermediates in the Docker image - #310
Merged
Merged
Conversation
The private keys of eight eMudhra intermediate CA certificates have been compromised (CVE-2026-111943). They chain to emSign ECC Root CA - G3, and to AAA Certificate Services through Sectigo cross-signs. Build scip-go and the image with Go 1.27.3, whose crypto/x509 rejects chains through these intermediates. Go module downloads are covered by this. Drop emSign ECC Root CA - G3 from the image CA bundle so git and other OpenSSL clients reject these chains too. The override is skipped once nixpkgs ships cacert 3.131.1, which removes that root itself. The bundle already excludes AAA Certificate Services from TLS trust. Track nixos-26.05-small, the only 26.05 channel with Go 1.27.3 so far.
christoph-sg
approved these changes
Oct 22, 2026
christoph-sg
left a comment
Member
There was a problem hiding this comment.
LGTM, could you open an issue for us to back out the custom changes once we can bump to a nixpkgs that has the relevant fixes included by default?
Merged
Collaborator
Author
Just in case posting here: CU-3540 |
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 CA certificates have been compromised (CVE-2026-111943, https://emudhra.we-have-a-problem.com/). They chain to
emSign ECC Root CA - G3, and toAAA Certificate Servicesthrough Sectigo cross-signs. The current image (Go 1.26.3, nixpkgs cacert 3.123) still accepts chains through them, with Go module downloads and with git.Changes
pkgs.go_1_27). Its crypto/x509 rejects chains through these intermediates (announcement). This coversgo mod download,go get, and toolchain downloads.emSign ECC Root CA - G3from the image CA bundle, so git (libcurl/OpenSSL) rejects these chains too. NSS 3.131.1 makes the same change. The override turns itself off once nixpkgs ships cacert 3.131.1 or later; leaving it on would fail the build, because the blocklisted root would no longer exist.AAA Certificate Servicesis already in the bundle without TLS trust, in both 3.126 and 3.131.1.nixos-26.05-smallinstead ofnixos-26.05. It is the only 26.05 channel with Go 1.27.3 so far. No 26.05 channel has Go 1.26.10 or cacert 3.131.1 yet.Testing
I built
nix build .#docker(amd64) and tested it against the two test hosts:dv-g3b-emudhra.we-have-a-problem.comchains through emSign ECC Root CA - G3, anddv-g3b-aaa-emudhra.we-have-a-problem.comthrough the AAA cross-sign.http.Getgo mod downloadwith the host as GOPROXYgo getwithGOPROXY=directgit ls-remoteEach fix works on its own:
x509: no valid chains built).go test ./...passes in the Nix check phase, andnixfmtandgoimportschecks pass. I indexed a small module whose dependencies came through proxy.golang.org and a direct git fetch. The output has the same symbols as the old image's. The arm64 image evaluates, but I have not built it.Release
The published image changes only after a release: bump
internal/index/version.txt(for example to 0.2.9) after this merges.