Java CVE-2026-91403修复:JSSE证书风险与JDK更新方法

秋宇吖_1080

秋宇吖_1080

2026-10-23

975人浏览

原创

2026年10月21日披露的java cve-2026-91403属于jsse模块安全问题,oracle给出的cvss 3.1评分为9.1,根源是8张已失陷的中间ca证书。处理这个漏洞需要更新实际运行的jdk或对应证书信任数据,只修改spring boot、tomcat、maven这类上层依赖不会生效。

CVE-2026-91403 为什么会影响Java HTTPS连接

JSSE是Java内置的安全网络连接模块,应用发起HTTPS请求、通过TLS连接数据库或调用其他加密接口时,通常会依赖证书链校验对端身份。哪怕证书链的格式完全合法,链上的签发机构也可能早已失陷不再可信。

中间CA的密钥一旦泄露失陷,应用若仍信任相关证书链,攻击者便可能借此冒充通信对端,破坏传输数据的保密性和完整性。OpenJDK 2026年10月21日公告明确本次漏洞关联8张失陷中间CA证书,排查范围要落到实际的证书验证路径上,不能直接把这个漏洞等同于所有Java服务都存在通用远程代码执行问题。

Oracle的风险矩阵标注该漏洞可通过网络利用、无需身份认证,这只是描述利用的前置条件,不代表访问任意Java对外服务就能直接入侵,也不能替代对单个业务系统实际调用逻辑的针对性分析。

Java CVE-2026-91403 与 CVSS 9.1 安全警报画面
图 1:Java 安全警报涉及 JSSE 证书信任。画面来源:阿博粒;受影响版本与处理方式见官方公告。
OpenJDK 官方漏洞公告标题、发布日期和受影响版本说明
图 2:OpenJDK 漏洞公告中的受影响版本说明。 官方地址:https://www.php.cn/link/7e89f702c876c07b698b5b315807e0c5。

哪些JDK版本需要处理

Oracle独立安全警报列出的Java SE受影响版本包括8u511、8u511-perf、11.0.33、17.0.21、21.0.13、25.0.5、27.0.1,还涉及部分GraalVM产品。OpenJDK公告覆盖的受影响版本包含8u512,以及对应维护分支的更早版本。不同厂商发布的JDK构建号要单独对照,不能通用一张升级清单。

上述所有版本均为受影响版本,绝非已经修复的版本,哪怕刚做完季度安全更新的环境,也要确认所用JDK的供应商是否已经同步推送本次独立警报的修复内容。挑选升级包时,要同时核对供应商、版本分支、完整构建号和该CVE对应的修复说明。

修复前先找到应用实际使用的Java

同一台服务器上可能同时装了系统默认JDK、应用自带JRE、多个容器运行时,终端敲java命令调用的程序,和systemd、Tomcat、容器进程启动时加载的Java很可能不是同一个文件。

<code class="bash"># 在目标主机或对应容器内检查当前命令的运行时
java -version
java -XshowSettings:properties -version

# Linux:将数字替换成目标 Java 进程的真实 PID
java_pid=12345
readlink "/proc/${java_pid}/exe"</code>

查看当前命令对应的JDK路径可以读取属性java.home,Linux系统下查看指定进程的JDK路径可以读/proc/PID/exe文件。容器场景要进入容器命名空间单独检查,如果进程对应的路径后面标了(deleted),说明磁盘上的旧JDK文件已经被替换,但之前启动的进程还在沿用旧文件,需要重启进程或替换运行实例。

独立JDK:优先升级修复构建,也可临时更新官方阻断清单

如果你的JDK是通过压缩包、安装器或者应用捆绑方式手动部署的独立版本,优先选用JDK供应商已经发布的修复构建。暂时没法直接升级的情况下,可以按OpenJDK公告给出的方法,更新$JDK_HOME/lib/security路径下的blocked.certs文件,JDK 8的同位置下对应的文件名为blacklisted.certs。

公告提供了Unix类系统的阻断文件和Windows版本的阻断文件,你要从官方公告给出的链接下载对应文件,替换时要保留之前手动添加的自定义阻断条目,所有独立部署的运行时都要单独处理。如果下载时遇到403、404错误或者返回HTML页面,立刻停止替换操作,改用供应商发布的完整修复安装包。

这份阻断清单和cacerts是完全独立的两个文件,前者用来拦截不可信证书,后者保存该信任库中的受信任证书。不要把刚下载的阻断文件直接覆盖到cacerts上,也不要随便从第三方论坛复制几个证书指纹就当成完整更新包。所有修改完成后要重启对应的Java实例,避免JVM继续沿用之前已经初始化的旧证书验证状态。

Linux发行版、Homebrew和容器的差异化处理

OpenJDK公告说明,Debian、Ubuntu、RHEL、Fedora等主流发行版自带的OpenJDK通常会调用操作系统层面的全局证书库,更新系统证书就能覆盖大部分场景的信任校验,不过Homebrew和FreeBSD上的OpenJDK包需要直接更新Java对应的软件包。这套处理方式只适用于对应发行版的默认安装版本,不能套用到手动解压部署的独立JDK上。

如果业务代码手动通过javax.net.ssl.trustStore参数指定了独立的自定义证书库,或者自己实现了证书验证逻辑,就要单独检查这部分配置。容器里的JDK和证书文件要么在镜像内要么通过挂载引入,应检查实际镜像和挂载配置,确认更新进入容器使用的信任数据;需要时重建镜像并替换旧实例。

没法及时升级时,怎么启用证书吊销检查

OpenJDK公告还给出了TLS应用启用吊销检查的JVM启动参数示例,你要把示例里的JDK绝对路径、JAR文件名和原有启动参数,替换成自己业务的实际配置:

<code class="bash">/opt/your-jdk/bin/java \
  -Dcom.sun.net.ssl.checkRevocation=true \
  -Dcom.sun.security.enableCRLDP=true \
  -jar /srv/your-app/app.jar</code>

这些参数要加到业务服务正式的启动命令里,单独在终端执行一次参数命令不会改变已经运行的JVM状态。证书吊销检查本身依赖网络获取吊销信息,可能会增加连接延迟,你要提前评估服务到相关吊销信息站点的连通性。如果业务代码本身就绕过了标准的证书信任校验逻辑,这些参数也没法补齐所有验证规则。

更新后出现PKIX错误或者TLS握手失败怎么排查

先定位报错对应的进程,确认它用的JDK路径、当前加载的证书链和自定义truststore配置。如果是正常业务用到的证书链刚好经过本次列入黑名单的失陷中间CA,联系对应的证书服务商更换成合法的可信证书链,不要用“信任全部证书”、关闭主机名校验、直接删除阻断条目这类方式强行恢复连接。

普通可信站点能正常完成HTTPS连接,只能说明当前对应连接的配置可用,不能证明这个漏洞已经完全修复。判断漏洞是否处理完成的依据,是你所用JDK供应商的修复说明、证书信任数据的官方来源,以及业务实际走的证书验证路径,Java应用的证书信任逻辑取决于这些具体条件,和业务本身是否已经开启HTTPS没有直接对等关系。

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

java js

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

11017

6

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

8122

9

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

2023.07.31

7052

8

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.01

1184

3

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.02

968

3

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

1436

5

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

2909

5

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

2023.08.03

20191

3

配置java环境变量
配置java环境变量

配置Java环境变量是为了让操作系统能够识别和使用Java的相关命令和功能。本专题为大家提供配置java环境变量相关文章,帮助大家解决问题。

2023.08.03

1275

8

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习