Skip to content

fix(deps): update Go to 1.27.3 to distrust compromised eMudhra intermediates (release-0.48) - #7000

Merged
jamengual merged 5 commits into
release-0.48from
fix/go-1.27.3-emudhra-0.48
Oct 21, 2026
Merged

jamengual merged 5 commits into
release-0.48from
fix/go-1.27.3-emudhra-0.48

Conversation

@jamengual

@jamengual jamengual commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

what

Backport of #6999 to release-0.48, so v0.48.2 can be cut from this branch with only the security fix plus image refreshes. No feature commits from main.

why

The private keys of eight eMudhra intermediate CA certificates were compromised. go1.27.3 adds a built-in distrust of those keys to crypto/x509 (CVE-2026-111943), and v0.48.1 is built with go1.27.1. See #6999 for the full analysis and references.

ca-certificates (second commit)

Alpine and Debian shipped ca-certificates security updates for this incident on 2026-10-20:

  • Alpine 20261020-r0 drops emSign ECC Root CA - G3 (plus eMudhra's planned removal of emSign Root CA - C1 / emSign ECC Root CA - C3). I compared the old and new bundles: 121 → 118 certificates. Alpine also removed 20260909-r0 from the 3.24 index, so every Alpine image build fails until the pin moves. That's why fix: bound UnlockByPull repo scan and scan all Redis Cluster masters #6736's image builds are now red.
  • Debian 20250419+deb13u1 (trixie-security, #1151413) blacklists emSign ECC Root CA - G3 and the Comodo AAA Services root, which cross-signed some of the compromised intermediates.

This covers the non-Go TLS clients in the image (git, curl, and terraform/tofu/conftest through the system store), which the Go 1.27.3 distrust doesn't reach. Note: at the time of writing, Alpine's armv7 index still serves 20260909-r0, so the linux/arm/v7 Alpine build can fail until Alpine's armv7 builder catches up.

golangci-lint (third commit)

go-lint.yml: golangci-lint v2.13.2 → v2.15.0. v2.13.2 can't read the export data go1.27.3 writes and fails every package with typecheck errors (export data version 5 is greater than maximum supported version 4). I ran both versions against this tree in a golang:1.27.3 container: v2.13.2 reproduces the CI errors, and v2.15.0 reports 0 issues.

release

After merge: gh release create v0.48.2 --target release-0.48 --latest, with a Highlights section covering the Go/x509 fix and the runtime image refresh.

🤖 Generated with Claude Code

…ediates

The private keys of eight eMudhra (emSign) intermediate CA certificates
were compromised (Mozilla bug 2083449). Several of them are cross-signed
by Sectigo's AAA Certificate Services root, which every system trust
store includes, so removing the emSign roots from ca-certificates does
not stop chains through them. Go's verifier does no revocation checking;
go1.27.3 (crypto/x509: distrust a handful of intermediates, CVE-2026-111943)
rejects any chain containing those keys. Atlantis binaries built with
go1.27.1 still accept them for its outbound TLS: VCS APIs, the Terraform
releases API, and anything else it calls.

go1.27.2 also fixed three other standard library vulnerabilities
(GO-2026-6612, GO-2026-6613, GO-2026-6617) that go1.27.1 has.

Bumps go.mod, the nested modules, the builder image in Dockerfile and
testing/Dockerfile, each pinned by digest.

Backport to release-0.48 for v0.48.2. Dockerfile and testing/Dockerfile
are taken from main, which also brings the image refreshes main already
has since v0.48.1: Debian curl/openssl pins at the trixie-security
versions (#6990; the release-0.48 pins no longer exist in Debian, so its
Debian image cannot build), Alpine 3.24.2 (#6931), conftest 0.70.1
(#6950), Terraform 1.16.5 (#6946, #6967) and the dockerfile frontend
digest (#6954).

Signed-off-by: PePe Amengual <2208324+jamengual@users.noreply.github.com>
@github-actions github-actions Bot added size/s build Relating to how we build Atlantis dependencies PRs that update a dependency file labels Oct 20, 2026
…A roots

Alpine 3.24 and Debian trixie-security shipped ca-certificates security
updates on 2026-10-20 for the eMudhra intermediate key compromise:

- Alpine 20261020-r0 drops emSign ECC Root CA - G3 (plus the planned
  removal of emSign Root CA - C1 and emSign ECC Root CA - C3). Alpine
  also removed 20260909-r0 from the 3.24 index, so the old pin no longer
  builds.
- Debian 20250419+deb13u1 blacklists emSign ECC Root CA - G3 and the
  Comodo AAA Services root, which cross-signed some of the compromised
  intermediates (Debian bug #1151413).

This covers the non-Go TLS clients in the image (git, curl, terraform
provider downloads through the system store) that the Go 1.27.3 distrust
does not reach.

Signed-off-by: PePe Amengual <2208324+jamengual@users.noreply.github.com>
golangci-lint v2.13.2 cannot read the export data go1.27.3 writes and
fails every package with typecheck errors ("export data version 5 is
greater than maximum supported version 4"). v2.15.0 reports no issues
on the same tree.

Signed-off-by: PePe Amengual <2208324+jamengual@users.noreply.github.com>
golangci-lint v2.15.0's modernize/stringscut check flags the
strings.LastIndex slicing in gitStatusContextFromSrc. CutLast returns the
same before/after halves around the last '/', so behavior is unchanged;
TestGitStatusContextFromSrc covers it.

Signed-off-by: PePe Amengual <2208324+jamengual@users.noreply.github.com>
@github-actions github-actions Bot added the go Pull requests that update Go code label Oct 21, 2026
@jamengual
jamengual merged commit 305453d into release-0.48 Oct 21, 2026
49 checks passed
@jamengual
jamengual deleted the fix/go-1.27.3-emudhra-0.48 branch October 21, 2026 00:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Relating to how we build Atlantis dependencies PRs that update a dependency file github-actions go Pull requests that update Go code size/s

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants