17611538698
webmaster@21cto.com

Oracle 紧急发布 Java 高危安全警报(CVE‑2026‑91403),封禁 eMudhra 弱私钥证书

安全 0 17 33分钟前
图片

21CTO导读:Oracle针对 Java 发布紧急安全公告,修复编号为 CVE-2026-91403 的高危漏洞。

2026年10月21日,Oracle 发布针对于Java的非计划紧急安全预警 CVE‑2026‑91403,将影响 Oracle Java SE、Oracle GraalVM for JDK 和 Oracle GraalVM Enterprise Edition 软件,CVSS 3.1 评分高达 9.1 分,可让黑客在无身份验证的情况下发动攻击。
图片

这是继PHP低版本出现高危安全漏洞后,Java也毫不犹豫加入了这场紧张又刺激的风波。

非常特殊的是,这份紧急补丁是在Oralce在 10 月月度 CPU 季度补丁更新发布的次日就紧急追加的推出,其根源来自印度证书机构 eMudhra 弱私钥泄露的重大安全事件。

该漏洞位于 Java JSSE 安全套接字组件,将攻击向量:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N,支持网络远程利用、无需账号权限、无需用户交互。

当成功被利用后会严重破坏 TLS 连接的机密性与完整性,但不会造成服务不可用。攻击者可实施中间人攻击、伪造 HTTPS 证书,窃取、篡改 Java 程序对外通信的数据,同时也会影响 Java Web Start、Applet 沙箱客户端场景。

重点警示:10 月 20 日刚发布的新版 Java 也在受影响范围内,即便刚打完季度 CPU 补丁,依旧存在高风险。

受波及影响的产品版本


  • Oracle Java SE:8u511、8u511‑perf、11.0.33、17.0.21、21.0.13、25.0.5、27.0.1
  • Oracle GraalVM for JDK:17.0.21、21.0.13
  • Oracle GraalVM Enterprise Edition:21.3.20


Oralce提示已经停止技术支持的旧版本虽然未完整测试,但大概率同样受此问题波及,建议升级至受维护版本Oracle。

事件根源:eMudhra 中间 CA 私钥可暴力推算


2026年10月17号安全研究员发现,印度证书机构 eMudhra 在2025年04月30号生成的 8 张中间 CA 证书存在严重缺陷:椭圆曲线私钥数值极小,任何人仅凭公开证书,就可以一秒推算出完整私钥,部分私钥甚至是 4、66 这类简单整数。

攻击者拿到私钥,可以冒充该 CA,为任意域名伪造合法 HTTPS 证书,实施中间人劫持,拦截篡改全网 HTTPS 流量。 eMudhra 事后解释:密钥生成流程出现故障,向外交付的是一组存在缺陷的弱密钥。 

除此之外,Sectigo 还对这 8 张证书做过交叉签名;即便删除 eMudhra 根证书,依靠交叉签名链路,伪造证书依旧可以通过校验,本次需要同时屏蔽原始 8 张以及交叉签名另外 8 张,合计 16 张证书。

浏览器修复完成,Java 还要单独打补丁


主流浏览器 Chrome、Firefox、Safari 已经通过根库更新、CRLSet、OneCRL 机制拉黑这批问题证书。但 Java 体系有特殊风险点:

  1. Java 独立维护证书信任库cacerts,不会复用操作系统、浏览器的根证书库;JDK/JRE 自带lib/security/cacerts、blocked.certs黑名单文件,需要单独更新。
  2. Java TLS 默认不开启证书吊销列表 CRL 检查,不强制 CT 证书透明度日志校验。 实测未修复的 OpenJDK,会无条件信任这批伪造的证书,Java 服务向外发起 HTTPS 调用时会被中间人攻击,不会报警报错。

发行版的区分:Debian、RHEL、Ubuntu 等系统包管理器安装的 OpenJDK,部分会复用操作系统 ca‑certificates;Homebrew、Windows 独立安装包、容器镜像内置 JDK,全部使用自带证书库,必须单独更新 JDK。

风险处置方案


方案一:优先升级 JDK(首选)


升级到 Oracle/OpenJDK 对应修复版本,新版本会把 16 张问题证书写入blocked.certs.pem黑名单,并且修复 ECDSA 签名编码比对逻辑。 

修复版本:8u511、11.0.33.0.2、17.0.21.0.2、21.0.13.0.2、25.0.5.0.2、27.0.1.0.2。升级完成务必重启全部 Java 业务进程。

方案二:临时缓解,无法完全替代升级


如果短期内无法完整升级 JDK,可以执行两项临时操作:

  1. 替换黑名单文件
    下载新版blocked.certs(JDK8 为blacklisted.certs),覆盖$JDK_HOME/lib/security/路径,替换前备份原有文件,避免丢失业务自定义黑名单。
  2. 开启证书吊销校验启动参数增加:
‑Dcom.sun.net.ssl.checkRevocation=true‑Dcom.sun.security.enableCRLDP=true

注意副作用:开启 CRL 校验后,每次 HTTPS 连接都会访问吊销服务器;如果 CRL 服务器网络不通,业务 HTTPS 请求直接失败,会带来业务可用性风险,只能作为临时过渡手段。

额外还要注意,8 张问题证书包含 2 张用于代码签名,JDK17 以上可使用命令校验 Jar 包签名吊销状态:

jarsigner ‑verify ‑revcheck ‑strict xxx.jar

风险与现状说明

  1. CVSS9.1 为 Oracle 基于 Applet 高权限场景的评分;普通后端服务实际风险取决于是否存在中间人劫持环境,但不代表可以拖延修复。服务端出站 HTTPS 调用同样受漏洞影响。
  2. 截至目前没有公开确凿证据,证实该漏洞已经在野外被实际利用。但是这批弱私钥从 2025‑04‑30 流出,暴露周期长达 17 个月,无法排除未被观测到的私下滥用行为。
  3. 后续 Oracle 常规安全更新时间:下一次 CSPU 安全补丁窗口为 2026‑11‑17。


企业安全管理启示


本次事件确是一次很好的审计契机,对于满足 ISO27001、ITGC 内控要求的团队,需要复盘:

  • Java 内置 cacerts 信任库是否纳入资产管理清单;
  • 是否有明确证书吊销校验配置规范;
  • Jar 包代码签名校验流程,是否覆盖中间证书吊销状态检查。

各位开发者亦可参考链接 Oracle 官方安全预警:
https://www.oracle.com/security‑alerts/alert‑cve‑2026‑91403.html OpenJDK
问题记录:
https://bugs.openjdk.org/browse/JDK‑8395142

作者:聆听世界的鱼

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信