证书私钥泄露这件事,严重程度往往取决于一个容易被忽略的细节:验证方到底查不查吊销状态。这次踩坑的正是这个细节。

打开网易新闻 查看精彩图片

Mozilla 披露,eMudhra 中间证书颁发机构(CA)证书的八把私钥已遭泄露。持有任何一张受影响的中间 CA 证书私钥的攻击者,都可能冒充任意网站或服务。

下游信任存储的反应速度不算慢:这些证书自 10 月 17 日起已在 Firefox 和 Chrome 中被屏蔽,自 20 日起在微软平台上被屏蔽,自 22 日起在苹果产品上被屏蔽。问题已于 10 月 19 日负责任地披露给下游信任存储的维护方,许多维护方已经发布更新,或正在发布更新。

但 Java 这边的情况要麻烦一些。Azul 在说明中把问题讲得很直白:Java 默认不检查证书是否已被吊销。在 JDK 自身屏蔽这些证书之前,Java 应用会将使用这些私钥签发的伪造证书视为有效证书。

时间线因此变得尴尬。披露当天没有补丁,而下一次季度发布要等到 1 月。仅仅一天后,原有措施就已不够:出现了季度发布日程不可能预见的零日漏洞。10 月 21 日,Azul 为此发布了周期外更新。

这轮补丁的规模也不小。作为 2026 年 10 月季度关键补丁更新公告的一部分,Oracle 发布了 JDK 27.0.1、25.0.5、21.0.13、17.0.21、11.0.33 和 8u511。Azul 为 Azul Zulu 的 JDK 27、25、21、17、11、8、7 和 6 版本发布了 2026 年 10 月关键补丁,涵盖53 个 CVE,并包含一次应对 eMudhra 泄露事件的“周期外”更新。

BellSoft 为 Liberica JDK 的 25.0.4.1.1、21.0.12.1.1、17.0.20.1.1、11.0.32.1.1、8u511、7u521 和 6u521 版本发布了关键补丁。此外,包含关键补丁和非关键性修复的补丁集更新(PSU)版本 27.0.1、25.0.5、21.0.13、17.0.21、11.0.33 和 8u512 也已发布。BellSoft 表示,各版本总共包含1438 项修复和向后移植,他们参与解决了其中的 144 个问题。

版本节奏方面,JDK 28 早期访问构建版的第 21 个构建版于上周发布,与第 20 个构建版相比包含多项更新,其中包括对多个问题的修复。Oracle Java 平台组首席架构师 Mark Reinhold 正式提议了以下发布日程:

  • 第一阶段功能冻结(从主线分支):2026 年 12 月 3 日
  • 第二阶段功能冻结:2027 年 1 月 14 日
  • 首个候选发布版:2027 年 2 月 4 日
  • 最终候选发布版:2027 年 2 月 16 日
  • 正式发布:2027 年 3 月 9 日

该拟议日程的评审期预计于 2026 年 10 月 29 日结束。开发者可以通过 Java Bug Database 报告错误。

框架和工具链这边也有几笔更新。WildFly 42 带来错误修复、依赖升级和新功能,包括其 Jakarta Concurrency 规范实现支持虚拟线程;以及在使用 WildFly Elytron 的 token-realm 安全组件时,可以通过配置主体转换器(例如 case-principal-transformer),在从 JSON Web Token 获取的 Java Principal 接口实例传递给受保护应用之前对其进行转换。

用于处理微软文档的 Java API Apache POI6.0.0正式发布,最低 JDK 版本要求提高至 17;更新 DataFormatter 类中定义的 useCachedValuesForFormulaCells() 方法,使其默认使用公式单元格的缓存值;并移除已弃用的方法。

Open Liberty 26.0.0.11 测试版的变化包括:JWT Builder 在生成的 JWT 中支持工作负载身份和 JWK 轮换,使 JWT 使用方能够识别生成令牌的工作负载或应用;可以通过 quiesceTimeout 元素配置服务器静默阶段的超时时间,而该时间此前固定为 30 秒;以及预览以 Netty 为基础的新 HTTP 传输实现,作为底层传输机制的内部替换。

Micronaut 5.2.3 通过 Micronaut Core 5.2.17 和 Micronaut Security 5.4.1 解决了10 个 CVE,Micronaut Data、Micronaut Object Storage 和 Micronaut Serialization 也发布了补丁更新。JobRunr 9.0.2 发布错误修复和两项新功能:重构 Quarkus 的 JobRunrStarter Bean,使其可以被替换;以及使用供应器获取 SQL 查询参数的值。

回到证书这条线,最值得记下的不是八把私钥,而是那句“默认不检查吊销”。季度发布的节奏是固定的,零日不是。