eMudhra事件波及Java和Go,OpenJDK发布严重安全公告

针对印度证书机构eMudhra私钥泄露事件,OpenJDK发布了CVSS评分9.1的安全公告。由于Java默认不检查证书吊销,伪造证书可能被接受。Go、Rust、Electron和Node.js也已发布修复。

Paylaş
eMudhra事件波及Java和Go,OpenJDK发布严重安全公告

印度证书机构eMudhra的八张中间证书私钥可被任何人还原一事,已在浏览器之外引发几乎整个软件界的修复行动。继Python之后,Java方面也发出了正式警告:根据OpenJDK于10月21日发布的安全公告,该问题编号为CVE-2026-91403,按CVSS 3.1评分为9.1,属于严重级别,涉及负责建立Java TLS连接的javax.net.ssl组件。

Java为何受影响

这些泄露的中间证书除了由eMudhra自己的根证书签发外,还由Comodo/Sectigo的AAA Certificate Services根证书交叉签名,而这些根证书可能存在于Java信任的证书列表(cacerts)中。浏览器会自行分发阻止列表,而Java应用默认不检查证书吊销,OpenJDK公告也建议在尚未开启的应用中启用吊销检查。因此,未更新的Java应用可能会把用这些中间证书签发的伪造证书视为有效,中间人可借此冒充所连接的服务器。

这不仅影响网页客户端,也影响所有用Java编写的HTTPS客户端,其中包括调用其他服务的服务器应用、API客户端以及通过HTTPS下载依赖的构建工具。

受影响版本与修复

公告列出的受影响版本为27.0.1、25.0.5、21.0.13、17.0.21、11.0.32.1、8u504及更早版本。报告该事件的研究人员在事件页面上列出的Oracle JDK修复版本为27.0.1.0.2、25.0.5.0.2、21.0.13.0.2、17.0.21.0.2、11.0.33.0.2和8u511;由于无法访问Oracle自己的发布说明,这些版本未能另行核实。Eclipse Temurin、Amazon Corretto、微软、Azul和红帽等其他发行方的更新,需要在各自页面上关注。

OpenJDK建议的修复方法是将泄露的证书加入Java的阻止列表。根据公告,这需要更新JDK目录下的lib/security/blocked.certs文件,在JDK 8中该文件名为blacklisted.certs。公告建议使用-Dcom.sun.net.ssl.checkRevocation=true和-Dcom.sun.security.enableCRLDP=true为TLS连接启用吊销检查,并对签名JAR文件使用jarsigner的吊销检查验证。

Linux发行版上更简单

根据公告,在Arch、Debian、Devuan、Fedora、Gentoo、Oracle Linux、RHEL和Ubuntu上,通过操作系统软件包安装的OpenJDK只需更新操作系统的证书即可。但在FreeBSD和Homebrew上并非如此,必须更新Java本身。事件页面提醒,在Debian和Ubuntu上Java的证书库可能与系统不同步,并建议重新配置ca-certificates-java软件包。

其他语言和工具

  • Go:10月20日发布的Go 1.27.3和1.26.10(CVE-2026-111943)在证书验证时会过滤掉包含这些中间证书的证书链。由于Go程序携带编译时所用版本的代码,应用需要用新版本重新编译。
  • Rust:rustls生态的根证书列表webpki-roots 1.0.10已移除emSign ECC Root CA - G3根证书。
  • Electron:44.9.1版本包含针对泄露的eMudhra中间证书的缓解措施,桌面应用需用该版本重新打包。
  • Node.js:22.23.4、24.22.1和26.12.1版本更新了根证书列表。
  • Python:需要pip 26.2.2、certifi 2026.10.19和uv 0.13.4;由于pip自带证书列表,Python是受影响最严重的生态。

应对建议

确认服务器上运行的Java版本和发行方,并升级到发行方的最新版本;若无法升级,请按OpenJDK公告中的blocked.certs步骤操作。在Linux上更新操作系统的ca-certificates软件包。如果以容器镜像形式发布应用,请更新基础镜像并重新构建。用新版本重新编译以Go和Electron编写的应用。连接事件页面上的测试地址,可以检查你的应用是否仍信任这些证书。

以上信息来自OpenJDK安全公告、Go、Rust和Electron的发布说明以及报告该事件的研究人员的事件页面。这些泄露的密钥自2025年4月起实际上就可被猜出,期间是否遭到滥用尚不清楚。默认不检查证书透明度日志和吊销状态的服务器软件,在此类事件中可能比浏览器暴露更长时间。建议同时关注独立安全研究人员的评估,从不同角度了解情况。