Ohhnews

分类导航

$ cd ..
foojay原文

Azul Zulu 2026年10月更新修复53个CVE,一天后紧急应对零日漏洞

#azul zulu#openjdk#零日漏洞#网络安全#ca证书

一次创纪录的季度更新本应是本季度最大的安全事件。2026 年 10 月 20 日,Azul 发布了 Azul Zulu Builds of OpenJDK 的 2026 年 10 月更新,涵盖 Java 27、25、21、17、11、8、7 和 6,包含 53 个 CVE 的补丁。不到一天,这已经不够了:出现了一个任何季度计划都无法预见到的零日漏洞,10 月 21 日 Azul 为此发布了非周期更新。

本文同时讨论这两件事,因为它们合在一起改变了结论。问题不再是你该安装哪个季度的更新,而是你能多快安装安全修复而不破坏应用?

零日漏洞:eMudhra CA 密钥遭泄露

2026 年 10 月 20 日,也就是季度更新的同一天,Mozilla 披露八张 eMudhra 中间 CA 证书的私钥遭到泄露。任何持有这些密钥的人都可以为任意域名签发能够链接到受信任根证书的证书。

Java 让这件事比听起来更糟:默认情况下,它不检查证书吊销。在 JDK 本身阻止这些证书之前,Java 应用会把使用这些密钥签发的欺诈性证书视为有效。披露当天没有补丁,而下一次季度发布要到 1 月。

经过团队的大量努力,Azul 于 10 月 21 日为 Azul Zulu Builds of OpenJDK 27、25、21、17、11、8、7 和 6,以及 Azul Zing Builds of OpenJDK 25、21、17、11 和 8 发布了非周期更新。该更新将这八张证书加入阻止列表,CPU 和 PSU 配置均包含此变更,因此 Java 不再信任任何使用这些泄露密钥签名的内容。

Azul 建议立即安装。如果无法马上更新,发行说明中描述了基于安全属性的临时变通方案。

如果你已经部署了季度更新,你需要再次更新。如果你尚未开始,请直接使用非周期构建:它们取代季度更新构建。

为什么这改变了结论

零日漏洞不会等待你的测试周期。“安装下一个季度更新”这条建议假设漏洞是已知的,并且按计划修复。而在这里,修复来自漏洞披露,而不是来自日历安排,并且 AI 已将漏洞披露到被利用之间的时间从数周缩短到数小时。

这正是 Azul CPU(关键补丁更新)体现价值的地方。它们只向上一季度经过充分测试的 PSU(补丁集更新)添加安全修复,因此你可以立即部署,如有需要甚至可以在两天内部署两次,同时将回归风险降到最低。PSU 还会包含数百项非安全变更,而过去六年中,每 5 个 OpenJDK PSU 就有 1 个导致回归问题。据我们所知,Azul 是唯一提供仅含安全修复更新的 OpenJDK 供应商。Oracle 的公开文档显示的是单一的季度发布,其中也包含错误修复。

季度更新

每三个月,即在 1 月、4 月、7 月和 10 月,OpenJDK 项目都会为所有受支持的 Java 版本发布安全补丁、错误修复和改进。

创纪录的 53 个 CVE

本次安全更新为 Azul Zulu 提供了 53 个 CVE 的补丁,为 Azul Prime 提供了 41 个。这是单个 OpenJDK 更新的历史最高值,几乎是过去两年每季度平均 7.6 个 CVE 的七倍。

  • 47 个 CVE 位于 OpenJDK 核心功能中,6 个位于 JavaFX 中
  • 2 个高分 CVE(7.0 及以上)、37 个中分 CVE、14 个低分 CVE

如果你想知道为什么 Oracle 的公告写的是 55 个:Oracle 还把 GraalVM 及其自有专有组件中的 CVE 计算在内。受影响领域包括网络、2D 图形、安全、JGSS 和 JavaFX(通过 WebKitGTK)。

面对 53 个 CVE,这是一个需要快速部署的版本,而 CPU 构建是实现这一点的最快安全方式。

Azul 的季度更新周期

Azul 将每个版本打包为两种形式。

关键补丁更新(CPU)

CPU 版本只包含安全修复。Azul 的每个 CPU 都基于上一季度的 PSU 构建,并且只应用安全补丁,因此团队可以部署紧急修复,同时将新回归问题的风险降到最低。

请注意,Oracle 所称的 CPU 是其单一的季度发布,其中包含错误修复。这对应的是 Azul 的 PSU,而不是 Azul 的 CPU。

补丁集更新(PSU)

PSU 版本包含对应 CPU 中的每一项修复,外加非安全错误修复、增强功能和新功能。Azul 将每个 PSU 与对应的 OpenJDK 项目季度发布保持一致。

充分利用 CPU 和 PSU 版本

在简短测试后快速安装 CPU 版本,以迅速关闭安全缺口。随后用更长时间测试 PSU 版本,并在下一个季度更新到来前迁移到该版本。

PSU 构建中的非安全变更

在安全修复之外,PSU 构建还包含非安全错误修复、增强功能和新功能。这些都不在 CPU 构建中:

  • Java 25:183
  • Java 21:136
  • Java 17:173
  • Java 11:28
  • Java 8:25

这总计 545 项非安全变更。其中包括新功能,例如向后移植到 Java 17 和 21 的后量子密码学 JEP 496(ML-KEM)和 JEP 497(ML-DSA)。

这些变更中的任何一项都可能引入不稳定性:过去六年中,每 5 个 OpenJDK PSU 就有 1 个导致回归问题。因此,当你必须紧急修补时,CPU 构建是通往生产环境的最快安全路径。

2026 年 10 月更新有哪些变更

请查看完整发行说明了解所有细节。以下变更尤为突出。

使用 Azul JDK X-Ray 工具发现存在漏洞的 Java

新的 Azul JDK X-Ray 工具是一个单文件脚本,只回答一个问题:这台机器上是否存在存在漏洞的 Java?它为 Windows 提供 PowerShell 脚本(azul-jdk-xray.ps1,PowerShell 5.1+),为 macOS 和 Linux 提供 shell 脚本(azul-jdk-xray.sh)。

HTTP 服务器与文件服务器加固

HttpServer 现在遵循 RFC 9112,并且每个请求只接受一个 Host 头。违反此规则的请求会收到 HTTP 400 响应。设置 sun.net.httpserver.disableHostValidation=true 可恢复旧行为。

在 JDK 21 及更高版本的 Windows 上,SimpleFileServer 现在会拒绝包含反斜杠的 URL。

XML 处理加固

两个新的系统属性限制危险的 XML 处理模式:

  • jdk.xml.enableTemplatesImplDeserialization(默认 false):TemplatesImpl 对象现在在反序列化时抛出 UnsupportedOperationException。
  • jdk.xml.allowNonXSLTSysProps(默认 false):XPath system-property() 函数仅限于 XSLT 定义的属性。

RMI 与 JavaFX 剪贴板

在 Java 6、7 和 8 上,java-rmi.cgi.sh 中的端口转发现在默认被拒绝。设置 FORWARD_PERMIT 可允许该行为。

JavaFX Clipboard 和 Dragboard 操作现在默认只反序列化为 String 或 ByteBuffer。如果你的应用依赖旧行为,请设置 javafx.dnd.deserializeObjectGraph=true。

Intelligence Cloud:CRS 代理已从 CPU 构建中停用

正如 7 月所宣布的,Azul 从 Azul Zulu Builds of OpenJDK 中停用内嵌的 Connected Runtime Service(CRS)代理。独立的 Azul Intelligence Cloud Agent以更高效的方式覆盖相同的用例。本次 10 月版本将该变更应用到 CPU 配置,此前 7 月已应用到 PSU 配置。

CRaC:恢复后可再次进行检查点

Coordinated Restore at Checkpoint(CRaC)的 Warp 引擎现在支持在恢复后再次进行检查点,与 criuengine 已经提供的能力一致。在直接映射模式下,必须保留整个镜像链。

平台变更

Azul 减少对已达到生命周期终止的平台的测试:Debian 11、Ubuntu 18.04 和 20.04、低于 3.24 的 Alpine Linux、Fedora 43(由 Fedora 44 取代)、低于 9 的 CentOS Stream,以及低于 15 的 macOS。支持 RHEL 10.x(仅 PSU),JDK 21 及更高版本还支持 Wolfi Linux。请查看受支持平台页面获取完整支持矩阵。

IANA 时区数据

本次发布包含 IANA 时区数据库 2026e 版本。

版本升级

发布版本OpenJDK PSUAzul Zulu CPU
2727.0.1+927.30.107
2525.0.5+825.38.107
2121.0.13+921.54.107
1717.0.21+917.70.111
1111.0.33+911.92.109
88u512-b088.98.0.107
7(CPU)7u521-b017.89.0.110
6(CPU)6b1916.83.0.108

运行 java -version 查看你的 JDK 落后多少。

后续步骤

现在安装非周期构建,然后规划一套能够吸收下一次突发情况的流程:为仅安全更新建立快速路径,为 PSU 建立较慢且经过测试的路径。接下来计划日期:

  • 2027-01-19:CPU/PSU 更新
  • 2027-03-23:OpenJDK 28 发布
  • 2027-04-20:CPU/PSU 更新
  • 2027-07-20:CPU/PSU 更新
  • 2027-09-21:OpenJDK 29(LTS)发布

请记住:不更新的 JDK 就是将已知漏洞带入生产环境的 JDK,而下一次零日漏洞不会等到 1 月更新。## 阅读更多

有关 eMudhra CA 被攻破的更多信息:

发现错误,或有内容需要补充?在 GitHub 上编辑此页面

作者

Frank Delporte

Frank Delporte 是一位 Java Champion、Java 开发者、Azul 高级技术文档工程师、博主,《Java Programming for Raspberry Pi - A Hands-On Guide to Electronics and IoT Projects》的作者,也是 Pi4J、Lottie4J、Sheetmusic4J 等项目的开源贡献者。

相关文章

Azul Zulu 2026 年 7 月季度更新发布

作者:Frank Delporte · 2026 年 7 月 23 日 · 930 次浏览
分类:Java、Java 核心、发行说明

Azul Zulu 2026 年 4 月季度更新发布

作者:Frank Delporte · 2026 年 4 月 23 日 · 2,493 次浏览
分类:Java、发行说明

Azul Zulu 全部容器镜像详解:CA、SA 与 Chainguard

作者:Frank Delporte · 2026 年 5 月 20 日 · 1,374 次浏览
分类:云、Java

更新还是升级 Java……以及应该使用哪个版本?

作者:Frank Delporte · 2023 年 2 月 23 日 · 8,266 次浏览
分类:DevOps、Java 核心、安全