Skip to content

Refresh Alpine packages to drop the compromised eMudhra root - #19

Merged
aszarama merged 1 commit into
masterfrom
distrust-emudhra-cas
Oct 21, 2026
Merged

aszarama merged 1 commit into
masterfrom
distrust-emudhra-cas

Conversation

@aszarama

Copy link
Copy Markdown
Contributor

What

The image now runs apk upgrade in the runtime stage, with an APK_SECURITY_REFRESH build arg to bust the cache. This rebuild pulls Alpine ca-certificates 20261020-r0, which drops emSign ECC Root CA - G3.

Before: ghcr.io/cortexapps/cortex-mcp:latest (built 2026-09-24) has ca-certificates 20260909 and accepts the eight compromised eMudhra intermediates. After: the Alpine store rejects them.

Why

The private keys of eight eMudhra subordinate CAs can be computed from their public certificates, so anyone can forge a trusted certificate for any host. httpx2 verifies TLS through truststore, and on Linux that is the Alpine store. The publish workflow uses the GitHub Actions layer cache, so a rebuild alone would reuse the old packages.

How

  • apk upgrade --no-cache in the runtime stage, before apk add git.
  • APK_SECURITY_REFRESH: bump the date to pull new Alpine fixes through the layer cache.

Verification

  • Built the image locally. It has ca-certificates-20261020-r0, and the Alpine store rejects all 16 compromised intermediate certificates. httpx2 and truststore import.
  • Not run: the MCP server against the Cortex API.

@ashiramin ashiramin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the local MCP and I think our plan is deprecate this eventually but good to make this change anyways

@aszarama
aszarama merged commit 2425107 into master Oct 21, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants