Skip to content

fix: reject compromised eMudhra certificate chains - #299

Merged
schpetbot merged 1 commit into
mainfrom
fix/emudhra-ca-compromise
Oct 22, 2026
Merged

schpetbot merged 1 commit into
mainfrom
fix/emudhra-ca-compromise

Conversation

@schpetbot

Copy link
Copy Markdown
Collaborator

The CLI trusts bundled Mozilla roots alongside the OS certificate store. Its current TLS dependencies accept chains through the compromised eMudhra intermediate CAs, so updating the OS trust store alone does not protect installed binaries.

Update rustls-webpki from 0.103.15 to 0.103.16 to reject the compromised keys, and webpki-roots from 1.0.9 to 1.0.10 to remove the affected bundled root. Configure release builds to fetch the latest standalone updater: cargo-dist 0.31.0 otherwise selects axoupdater 0.10.0, while the certificate fixes shipped in 0.10.3. Add an Unreleased changelog entry.

Validation:

  • Before the update, the CLI accepted TLS connections to all 14 advisory test hosts. Afterward, it rejects all 14, both with default trust settings and with the affected roots explicitly supplied through SSL_CERT_FILE; the latter reports CertDistrusted.
  • TLS connections to api.linear.app still succeed under both trust configurations. Probes used a fake API key.
  • just check: 1,008 tests passed, zero failures, one ignored.
  • dist generate --check and dist plan --output-format=json passed.
  • Third-party license generation passed for all 291 crates.

Existing installations need a release containing this change to receive the fix.

The CLI combines OS roots with embedded Mozilla roots, so updating the system trust store alone leaves compromised certificate chains trusted. Update rustls-webpki to 0.103.16 to block the affected keys and webpki-roots to 1.0.10 to remove the affected bundled root.

Fetch the latest standalone updater for releases: cargo-dist 0.31.0 otherwise selects axoupdater 0.10.0, while the certificate fixes shipped in 0.10.3.

Verified all 14 advisory hosts were accepted before and rejected after the update, both with default trust and affected roots supplied through SSL_CERT_FILE. Legitimate Linear TLS still works. The full repository check, dist generation/plan checks, and license generation pass.
@schpetbot
schpetbot merged commit c3bbc79 into main Oct 22, 2026
10 checks passed
@schpetbot
schpetbot deleted the fix/emudhra-ca-compromise branch October 22, 2026 19:26
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