返回资讯中心
外部精选
软件工程
#开发工具#news#security

eMudhra 八个中间 CA 私钥被曝脆弱,TeamCity 新增健康报告提示

来源标题:The eMudhra Certificate Authority Compromise: What It Means for TeamCity

eMudhra 于 2026 年 10 月披露其运营的 8 个中间证书颁发机构私钥强度不足、可从公开数据中恢复,但称这些 CA 未签发终端实体证书,也未发现被利用的证据。TeamCity 本身不存在该漏洞,但其依赖的 Java 运行时信任库可能仍信任受影响证书。从 2026.2.2 和 2026.1.6 版本起,TeamCity 会在安装仍信任这些证书时显示健康报告并给出修复步骤。

JetBrains BlogAndrey Koltsov2026/11/3 · 3 天前30 分钟阅读

以下正文由 AI 翻译自 JetBrains Blog(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

概要

2026 年 10 月,eMudhra 运营的八个中间证书颁发机构的私钥被发现存在强度不足的问题,且可从公开数据中恢复。根据 eMudhra 的官方声明,受影响的中间 CA 均未签发终端实体(叶子)证书,且 eMudhra 未发现这些弱密钥在问题披露之前被恢复或利用的证据。

该问题并非 TeamCity 本身的漏洞。但是,TeamCity 所依赖的其他软件组件(主要是 Java 运行时)所维护的信任存储可能仍然信任这些已泄露的证书。从 2026.2.2 和 2026.1.6 版本开始,如果安装环境仍然信任受影响的证书,TeamCity 会显示健康报告,并提供修复步骤。

建议采取的措施:

  • TeamCity On-Premises:检查服务器和构建代理的安装情况,并按照以下说明应用必要的修复。升级到 v2026.2.2 或 v2026.1.6,以获得适用于 Windows 代理安装程序的更新版 Java 运行时、更新后的 Docker 镜像以及健康报告;或者按照以下说明对当前安装应用相同的修复。
  • TeamCity Cloud:TeamCity Cloud 已完成更新。上传到 TeamCity 的证书必须按照下文“上传到 TeamCity 的证书”一节所述进行审查。自托管构建代理也必须按照以下说明进行审查。

详情

2026 年 10 月 17 日,eMudhra 的八个中间 CA 的私钥被报告泄露,其中六个用于 TLS,两个用于代码签名。这是一起全行业范围的证书颁发机构事件,并非 TeamCity 特有的问题。使用这些密钥签发的证书,对于任何仍然信任它们的软件来说都会显得有效。

浏览器和操作系统厂商已发布更新,阻止这些已泄露的证书,系统在安装这些更新后即可受到保护。拥有独立信任存储的软件(例如 Java 运行时)在该信任存储更新之前,会继续信任这些已泄露的证书。TeamCity 的服务器和构建代理使用其 Java 运行时的信任存储。

TeamCity 的下载文件并非由 eMudhra CA 签名,因此不受影响。

你需要做什么

1. 更新 Java 运行时

  • 确定每个服务器节点和代理所使用的 Java 运行时,包括通过 javax.net.ssl.trustStore 设置的任何自定义信任存储。
  • 查看 Java 厂商针对 CVE-2026-91403 和 CVE-2026-114820 的发布说明。对于 Amazon Corretto 21,修复版本为 21.0.13.0.11 或更高版本。
  • 更新受影响的运行时,并重启每个服务器节点或代理。

可选的信任存储验证可以识别信任存储中仍然存在的受影响证书。如果无法升级,请按照同一节中的手动缓解命令操作。

移除 AAA Certificate Services 可能会中断未受影响的服务;在移除该根证书之前,请测试依赖的连接。

2. 更新 TeamCity 服务器并审查上传的证书

以下服务器维护建议适用于 TeamCity On-Premises 安装。JetBrains 会为 TeamCity Cloud 打补丁,但上传到该服务的证书仍需审查。

  • 尽可能升级 TeamCity。2026.2.2 和 2026.1.6 版本新增了健康报告和其他产品改进,并修复了其他漏洞。现有代理需要独立审查。
  • 更新每个服务器节点上的 Java。即使升级了 TeamCity,也请遵循“更新 Java 运行时”一节的操作。
  • 重新部署 Docker 安装。在补丁版 2026.2.2 或 2026.1.6 服务器镜像发布后,从 Docker Hub 拉取该镜像,或者按照服务器镜像说明重新构建现有镜像。重新创建容器。
  • 审查上传的证书。使用健康报告或下方的证书检查命令,然后通过 Root 项目的 SSL / HTTPS Certificates 页面移除受影响的证书。更新 Java 不会移除已上传的证书。

更新 TeamCity 服务器不会更新集成或第三方软件。请按照“审查和更新配套基础设施”一节所述,单独审查这些组件。

3. 更新 TeamCity 代理并审查受信任的证书

  • 更新每个构建代理上的 Java。请遵循“更新 Java 运行时”一节的操作。TeamCity Cloud 客户还必须审查其自托管代理所使用的 Java 运行时。健康报告不会检查代理。
  • 更新 Docker 安装。从 Docker Hub 拉取补丁版 2026.2.2 或 2026.1.6 代理镜像。或者,使用与服务器镜像相同的重新构建说明来重新构建现有镜像。使用更新后的镜像重新创建容器。
  • 审查代理证书。在 /conf/trustedCertificates 下运行“技术命令”一节的证书检查命令,并移除任何受影响的证书文件。更新 Java 不会移除这些证书。

4. 审查和更新配套基础设施

更新服务器不会更新集成或第三方软件。我们建议单独审查以下组件:

  • 操作系统和构建工具:对操作系统信任存储、其他 Java 运行时、Git 和 MinGit、Python 的 certifi、Node.js 以及其他拥有独立信任存储的工具应用厂商更新。
  • 自定义镜像:更新每个受影响镜像内的操作系统和工具,重新构建镜像,并重新创建容器。
  • 连接的服务:通过 eMudhra 的迁移流程,替换 VCS 主机、包注册表和其他服务所使用的 eMudhra 证书。

技术命令

每个脚本都在顶部定义其环境变量:

  • TEAMCITY_JRE:默认为 JAVA_HOME;如果 TeamCity 运行在其他 JRE 或 JDK 上,请修改该变量。
  • TC_TRUSTSTORE:设置为任何自定义的 javax.net.ssl.trustStore(JDK 8 默认值:jre/lib/security/cacerts)。
  • TC_STOREPASS:如果密码不同,请修改该变量。
  • TC_CERT_DIR:在指定位置要检查的证书文件。

可选的信任存储验证

请注意,结果仅适用于所选定的信任存储。这些命令不会检查 blocked.certs。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →