Восемь промежуточных CA, созданных eMudhra в апреле 2025 года, генерировались с дефектом: закрытые ключи были крошечными числами, которые легко перебрать. Шесть из них — TLS, два — для подписи кода. Через кросс-подписи Sectigo они также цеплялись к корню AAA Certificate Services. Проблему 17 октября нашёл исследователь, анализируя данные CCADB.
Реакция
- 17 октября Chrome и Firefox заблокировали сертификаты (CRLSet, OneCRL/CRLite), затем Apple, Microsoft и Android.
- eMudhra отозвала сертификаты и объявила об уходе из публичного TLS-бизнеса.
- 27 октября Chrome удаляет корень emSign ECC Root CA – G3; Mozilla делает то же. Владельцам сертификатов из этой цепочки Google рекомендует срочно перевыпустить их у другого CA.
- В CT-логах сертификатов от этих CA не обнаружено; была ли эксплуатация за 17 месяцев — неизвестно.
Кого касается
Всех TLS-клиентов со встроенным списком корней, а не только браузеров. Исправления вышли в Python 3.11–3.15 (модуль ssl, CVE-2026-115557), pip 26.2.2, certifi 2026.10.19, Node.js 22/24/26, Go 1.26.10 и 1.27.3, rustls-webpki, webpki-roots, Electron и пакетах ca-certificates основных дистрибутивов.
Что делать
Обновить рантаймы, pip/certifi и ca-certificates, пересобрать контейнеры без кэша слоёв, поискать вендоренные PEM-файлы в зависимостях. И ни в коем случае не «чинить» ошибки отключением проверки сертификатов.
Eight intermediate CAs created by eMudhra in April 2025 had flawed key generation: the private keys were tiny integers that are trivial to brute-force. Six are TLS CAs, two are code-signing. Through Sectigo cross-signs they also chained to the AAA Certificate Services root. A researcher spotted the issue on Oct 17 while analysing CCADB data.
Response
- On Oct 17 Chrome and Firefox blocked the certificates (CRLSet, OneCRL/CRLite), followed by Apple, Microsoft and Android.
- eMudhra revoked the certificates and announced it is exiting the public TLS business.
- On Oct 27 Chrome removes the emSign ECC Root CA – G3 root; Mozilla is doing the same. Google tells holders of certificates chaining to it to reissue from another CA immediately.
- No certificates from these CAs appear in CT logs; whether they were abused during the 17-month window is unknown.
Who is affected
Every TLS client with a bundled root list, not just browsers. Fixes shipped in Python 3.11–3.15 (ssl module, CVE-2026-115557), pip 26.2.2, certifi 2026.10.19, Node.js 22/24/26, Go 1.26.10 and 1.27.3, rustls-webpki, webpki-roots, Electron, and the ca-certificates packages of major distros.
What to do
Update runtimes, pip/certifi and ca-certificates, rebuild containers without layer cache, and look for vendored PEM files in dependencies. Never “fix” errors by disabling certificate verification.