#55738: fix: block the revoked eMudhra RSA intermediates
Description of Change
Follow-up to #55126. On Nov 7 eMudhra revoked the eight RSA-4096 intermediates (G2B/G2C) generated in the same key ceremony as the ECDSA set blocked in October. Their keys weren't truncated, but they were handled outside a cryptographic module, so eMudhra can't show they stayed confidential (Bugzilla 2083449, comment 82, Appendix C). They still chain to emSign Root TLS CA - G1 and emSign Root CS CA - G2, and Electron doesn't consume CRLSet, so this adds their SPKI hashes to both lists:
- Chromium: a new
add_entries_to_the_spki_blocklist.patchthat adds the eight hashes to the end ofkSPKIBlockList. The October version of this patch was dropped once upstream CL 8618876 shipped the ECDSA set, and upstream at 159.0.8154.0 doesn't have the RSA set. - Node: the eight hashes are added to
kBlockedSPKIsin the existingtls_adapt_the_upstream_spki_blocklist_for_electron.patch. Node v26.13.0 only has the ECDSA set.
How the hashes were derived and checked:
- Each certificate was fetched from crt.sh by the fingerprint in the incident report. Its SHA-256, subject and serial all match the report.
- The SPKI hash is SHA-256 over the DER SubjectPublicKeyInfo. The same computation reproduces the existing
e7568fe6…entry exactly. - Both patches apply cleanly with
git amonto the pinned upstream files (for Node, afterfix_handle_boringssl_and_openssl_incompatibilities.patch). Every resulting file matches the blob hash recorded in the patch'sindexline.
| Certificate | Fingerprint (SHA-256) | SPKI (SHA-256) |
|---|---|---|
| EM DV TLS CA - G2B | 829ec444…bae793 |
04db3b7d…a9eb5b |
| EM DV TLS CA - G2C | 0427ea3c…ac876d |
34556838…a1f00e |
| EM OV TLS CA - G2B | 6a7a9386…bd9012 |
84293510…9a48e1 |
| EM OV TLS CA - G2C | de767792…f94ba9 |
aa4216dc…61e3ce |
| EM EV TLS CA - G2B | e072b30d…898750 |
c2690b6b…82b04e |
| EM EV TLS CA - G2C | c3bc2b48…77aa20 |
1a942e39…f0adbe |
| EM OV CS CA - G2B | 913f1a04…58e072 |
01696135…f13881 |
| EM OV CS CA - G2C | ebac91b8…84f27b |
c073efb3…946b86 |
Each part can be dropped once the hashes land upstream in Chromium or Node.
Checklist
- I have built and tested this change
- I have filled out the PR description
- I have reviewed and verified the changes
-
npm testpasses - PR release notes describe the change in a way relevant to app developers, and are capitalized, punctuated, past tense, and no longer than 80 characters.
🤖 Generated with Claude Code
Release Notes
Notes: Stopped trusting certificates issued by eMudhra's revoked RSA intermediates.
Backports
Semver Impact
Semantic Versioning helps users understand the impact of updates:
- Major (X.y.z): Breaking changes that may require code modifications
- Minor (x.Y.z): New features that maintain backward compatibility
- Patch (x.y.Z): Bug fixes that don't change the API
- None: Changes that don't affect using facing parts of Electron