news 2026/10/28 19:01:00

CVE-2026-91403 高危漏洞预警:Java JSSE 信任链被攻破 全场景修复方案与Ubuntu系统级彻底清理实操

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CVE-2026-91403 高危漏洞预警:Java JSSE 信任链被攻破 全场景修复方案与Ubuntu系统级彻底清理实操

前言

2026年10月Oracle披露的CVE-2026-91403(CVSS 9.1)是近期影响范围极广的证书信任漏洞。很多运维团队的修复动作仅停留在JDK层面,却忽略了一个关键事实:操作系统证书库是全系统共用的信任根,curl、wget、Python脚本、Nginx反向代理、系统包管理器等所有依赖系统证书的应用,都共享同一条风险信任链。只修复JDK而不清理系统证书,相当于只封堵了一半的攻击面。

本文从漏洞原理出发,覆盖独立JDK、系统包管理器安装JDK、系统级证书等全场景修复方案,补充了Ubuntu环境下底层证书残留的彻底清理实操与效果验证方法,并整理生产环境高频踩坑点,帮助团队完成完整闭环的风险处置。


发布日期:2026-10-23
标签:Java安全 / CVE-2026-91403 / JSSE / 中间人攻击 / 证书信任链

一、漏洞概述与背景

2026年10月21日,Oracle官方发布安全快讯,披露了Java SE与GraalVM中的高危证书信任漏洞CVE-2026-91403。该漏洞位于JSSE加密通信组件,CVSS 3.1评分高达9.1,攻击者无需身份认证即可远程利用。

核心风险是:Java默认信任了eMudhra(emSign)存在私钥缺陷的中间CA证书,攻击者可在网络中间路径为任意域名伪造合法SSL证书,劫持Java应用的HTTPS通信,窃取支付凭据、API密钥等敏感数据。

重要提醒:风险不止局限于Java应用。操作系统级的证书库是公共信任根,curl、wget、Python脚本、Nginx反向代理、系统包管理器等所有依赖系统证书的应用,都会受这条信任链影响。只修复JDK而不清理系统证书,等于只封堵了一半风险面。

二、漏洞原理:攻击是如何生效的

HTTPS/TLS的安全建立在证书链信任之上,而系统与Java各维护一套独立的信任库:

  1. 信任预置:系统证书库与Java自带的cacerts信任库中,均预置了eMudhra旗下emSign的多根根证书(G1、C1、G3、C3)。
  2. 私钥缺陷:eMudhra签发的一批中间CA证书私钥强度不足,可被推导或利用。
  3. 证书伪造:攻击者利用弱私钥为任意目标域名签发证书,证书链可完整回溯到被信任的emSign根证书。
  4. 中间人劫持:攻击者通过DNS劫持、路由污染插入通信链路,出示伪造证书即可通过信任校验,进而窃取或篡改全量通信数据。

高风险场景:所有主动外呼HTTPS的服务,包括支付网关调用、外部API请求、CI/CD依赖拉取、系统自动化脚本等。

三、受影响版本清单

根据OpenJDK官方公告,以下JDK版本及更早均受影响:

产品受影响版本
Java SE / OpenJDK8u512、11.0.33、17.0.21、21.0.13、25.0.5、27.0.1
GraalVM for JDK对应上述JDK版本
GraalVM Enterprise Edition21.3.20 及更早

注:所有使用系统证书库的非Java应用同样存在同类中间人攻击风险,需同步做系统级清理。

四、修复方案大全(按场景分类)

方案一:升级JDK版本(首选,最彻底)

升级到官方修复版本是最彻底的方式,修复版本通过内置黑名单精准拦截受影响的中间证书。

  • 独立安装的OpenJDK / Temurin / Oracle JDK:升级至高于上表所列的版本。
  • 系统包管理器安装的JDK:同步执行系统证书更新(见方案二)。

方案二:操作系统证书更新(系统级修复)

通过包管理器更新系统证书库,修复范围覆盖全系统所有依赖系统证书的应用,包括apt安装的JDK、curl、wget、Python、Nginx等。

Ubuntu / Debian:

sudoaptupdatesudoaptinstall--only-upgrade ca-certificates ca-certificates-java

Ubuntu安全公告USN-8944-1明确该更新会移除emSign全系列根证书;ca-certificates-java负责将系统证书同步至Java环境。

RHEL / CentOS / Fedora:

sudoyum update ca-certificates# 或sudodnf update ca-certificates

方案三:替换黑名单文件(独立JDK临时缓解)

无法立即升级JDK时,可替换官方证书黑名单文件临时阻断风险。

说明:官方下载地址https://ops.java/unix/blocked.certs当前可能访问异常,无法下载时优先选择升级JDK,或从最新版OpenJDK安装包中提取对应文件。

操作步骤:

  1. 获取官方blocked.certs文件
  2. 备份原文件:
    # JDK 9+cp$JAVA_HOME/lib/security/blocked.certs$JAVA_HOME/lib/security/blocked.certs.bak# JDK 8cp$JAVA_HOME/jre/lib/security/blacklisted.certs$JAVA_HOME/jre/lib/security/blacklisted.certs.bak
  3. 替换文件:
    • JDK 8:重命名为blacklisted.certs,覆盖$JAVA_HOME/jre/lib/security/
    • JDK 9+:保持原名blocked.certs,覆盖$JAVA_HOME/lib/security/
  4. 必须重启所有Java进程,黑名单才会加载生效。

局限性:黑名单基于SHA-256指纹拦截,存在被攻击者通过证书重编码绕过的可能,仅作为临时缓解手段,后续仍需升级JDK。

方案四:JVM参数加固(补充防御)

在JVM启动参数中加入证书吊销检查,作为额外防御层:

-Dcom.sun.net.ssl.checkRevocation=true-Dcom.sun.security.enableCRLDP=true

五、进阶实操:Ubuntu系统底层彻底清理残留证书

部分Ubuntu版本的update-ca-certificates增量更新存在残留问题,执行apt升级后仍可能查到emSign证书。如需物理级彻底清理,可选择以下两种方式。

方式一:应急快速清理(直接删除物理文件)

适合紧急处置场景,操作简单见效快,安全效果达标,但会残留配置警告。

  1. 查找系统中所有emSign证书文件(通常共4个:G1、C1、G3、C3)
    find/usr/share/ca-certificates/-iname'*emsign*'
  2. 物理删除证书文件并强制刷新证书库
    sudorm/usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_G3.crt\/usr/share/ca-certificates/mozilla/emSign_Root_CA_-_C1.crt\/usr/share/ca-certificates/mozilla/emSign_Root_CA_-_G1.crt\/usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_C3.crtsudoupdate-ca-certificates--fresh

说明:执行后会出现4条W: ... not found警告,仅为配置一致性提示,不影响任何安全效果,证书已从系统生效信任库中移除;后续每次刷新证书都会重复该提示,属于运维残留。

方式二:规范无告警清理(修改配置清单)

推荐生产环境使用,符合系统设计逻辑,无残留告警。

# 从配置清单中移除所有emSign证书启用条目sudosed-i'/emSign/d'/etc/ca-certificates.conf# 强制重建系统证书库sudoupdate-ca-certificates--fresh

修复效果验证

系统层验证(最核心标准):无任何输出即为清理干净

awk-vcmd='openssl x509 -noout -subject''/BEGIN/{close(cmd)};{print | cmd}'</etc/ssl/certs/ca-certificates.crt|grep-iemsign

Java层验证:官方修复为拉黑中间证书而非删除根证书,因此cacerts中仍可能查到emSign根证书,属于正常现象。可通过对比黑名单文件行数确认更新,最终以业务HTTPS外呼正常为准。

六、生产环境避坑指南

  1. 系统与JDK是两套独立体系,必须同步处理
    系统证书库服务于全系统应用,JDK自带信任库仅服务于Java进程。只修JDK不修系统,curl、Python等应用仍存在风险;只修系统不修独立JDK,Java业务仍会受影响,二者缺一不可。

  2. 修改后必须重启对应进程
    JVM启动时才加载信任库与黑名单,替换文件后必须重启Java进程;系统证书更新后,依赖证书的常驻服务(如Nginx、Java应用)也需重启才能加载新配置。

  3. 警惕自定义TrustStore
    若应用通过-Djavax.net.ssl.trustStore指定了专属JKS证书库,该文件不会随系统或JDK自动更新,必须单独检查并清理其中的emSign证书。

  4. 不要盲目全删根证书
    JDK层面不建议手动删除cacerts中的eMudhra根证书,官方策略是精准拦截问题中间证书,误删根证书可能导致正常使用emSign证书的业务中断。

  5. 不要依赖增量更新,以实际证书校验为准
    部分Ubuntu版本的update-ca-certificates默认采用增量更新逻辑,即使升级了ca-certificates包,也可能在最终的证书bundle中残留旧条目。执行时务必加上--fresh参数强制重建证书库,且修复完成必须通过openssl扫描实际生效的证书文件验证,不能仅以包版本更新就判定修复完成。

清理前:

清理后:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/28 19:00:42

OpenClaw 一键包|45.7MB 本地 AI 智能体全流程实操

&#x1f4d6; 前言 本文面向 Windows 系统用户&#xff0c;系统梳理 OpenClaw 的标准化部署流程。全程无需输入任何命令&#xff0c;所有操作均可通过可视化向导完成&#xff0c;即使是零基础用户&#xff0c;也能独立走完整套部署流程。文中同时汇总了高频报错对应的解决方案…

作者头像 李华
网站建设 2026/10/28 19:00:24

Linux 核心命令与符号 >> 权限管理体系专题

Linux 权限是安全管控的核心&#xff0c;文件读写执行权限、属主属组修改、文件特殊锁定属性、系统默认权限掩码&#xff0c;是运维排查权限问题高频知识点。一、chmodchange mode&#xff0c;修改文件 / 目录权限数字权限写法字符权限写法&#xff08; - &#xff09;-R&#…

作者头像 李华
网站建设 2026/10/28 18:59:15

产线设备选型的技术评估方法:从参数表到验收清单

设备选型这件事&#xff0c;多数团队的做法是"看参数表 比价格"。但参数表只能筛掉明显不合格的&#xff0c;真正决定成败的是验收清单。这篇讲一套可复用的技术评估方法。一、四步评估法第 1 步&#xff1a;定工况 — 扭矩区间、工件材质、节拍要求、环境条件。第 …

作者头像 李华
网站建设 2026/10/28 18:58:35

springboot易购数码商城系统11471-计算机课程设计、毕业设计

前言 ✨ 博主介绍&#xff1a;一线全栈工程师&#xff0c;毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发&#xff0c;擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码&#xff0c;帮…

作者头像 李华
网站建设 2026/10/28 18:58:03

大龄前端逆袭指南:收藏这份转行AI大模型应用开发全攻略!

文章为面临失业风险的大龄前端提供了转行AI大模型应用开发的详细步骤&#xff0c;包括基础能力自测、职业诉求确认、行业市场调研、薪资成本测算以及作品集落地要求。作者强调通过系统学习和项目实践&#xff0c;弥补年龄劣势&#xff0c;实现职业转型&#xff0c;并给出了学习…

作者头像 李华