
Your MCU likely escaped the eMudhra intermediate CA compromise
Analysis of the eMudhra intermediate CA compromise disclosed 20 October 2026, in which eight intermediate CA private keys were weak P-384 keys (top 376 bits zero, one key equal to 4) and publicly accessible. It explains web PKI chains and why browsers enforcing Certificate Transparency were not exposed. It argues MCU firmware that bundles only the single root it needs, as in Zephyr's HTTP GET sample, is likely safe unless it trusts an eMudhra or Sectigo cross-signing root.
What it is
Daniel Mangum's post on the eMudhra intermediate CA compromise, disclosed 20 October 2026, and what it means for MCU firmware versus Linux-class devices. Eight eMudhra intermediate CA certificates had P-384 private keys that the CA generated incorrectly. The top 376 bits were zero, and one key was the number 4. Anyone can recover the keys from the certificates, so anyone can issue a leaf certificate that chains to eMudhra's root.
Preconditions / Affected
- Every trust store that includes eMudhra's root is affected, which covers all the major root programs.
- The flawed intermediates date from April 2025. The page quotes the Mozilla bug report: no Certificate Transparency log entries exist for them in that period, so CT-enforcing clients (Firefox, Chrome, Edge, Safari) could not have been attacked.
- Many clients outside browsers do not enforce CT. The quoted report says it is not known whether attackers exploited this against them.
- Linux-class devices such as a Raspberry Pi, with a full CA bundle, are likely exposed. The post says to update them as soon as possible through OTA.
- An MCU is likely safe unless its firmware bundles an eMudhra root, or the Sectigo root used for cross-signing eMudhra.
flowchart TD
A[Device verifies TLS chain] --> B{Full CA bundle?}
B -->|Yes, Linux or SBC| C[Exposed: update now]
B -->|No, single pinned root| D{eMudhra or Sectigo cross-sign root bundled?}
D -->|Yes| C
D -->|No| E[Likely safe]What to do
Check which roots your firmware ships. Zephyr's HTTP GET sample bundles only the one root needed for google.com (GlobalSign R1, nearly 1 KB DER), which puts it in the safe case. To see the chain a server presents, the post gives:
openssl s_client -showcerts -verify 5 -connect danielmangum.com:443Replace the host with your own backend. The post also tells readers to patch CI environments, developer tooling, cloud services and productivity software. Language runtimes, OS packages and developer tools are already shipping fixes that either filter the compromised intermediates or reject the eMudhra root outright.
Caveats
- "Likely safe" is the author's judgement, based on size limits that push MCU builds toward a single root. It is not a guarantee, and the post does not audit any specific SDK.
- The post quotes Russ Cox and Scott Helme warning that non-updating IoT devices stay open to man-in-the-middle attacks, with bundles frozen until 2039. The author reads that as true for Linux-class devices, not for MCUs.
- The post does not cover how to remove a root from deployed firmware.
Organisations named here
- Certificate Transparency
- eMudhra
- GlobalSign
- ISRG Root X1
- Let's Encrypt
- Russ Cox
- Scott Helme
- Sectigo
Technologies named here
- OpenSSL s_client
- Certificate Transparency logs
- Mozilla CA Certificate Program
- Chrome root program
- Zephyr RTOS HTTP GET sample
- openssl
- Firefox
- Chrome
- Mozilla
- Zephyr
Techniques named here
- Weak key generation
- Minimal trust store on MCUs
Related in Hardware & RF

HAETAE on a Diet: Less Stack, Less Time on Low-End Microcontrollers
geo-tp/ESP32-Bit-Pirate
