macOS Git 仍信任受损证书,中间人攻击风险持续

原标题:Ten days later, Git on macOS still trusts the compromised eMudhra certificates
78AI 研判分

Apple 在收到 eMudhra 证书泄露通知十天后,其 macOS 内置开发工具(Git、curl、Python3)仍未移除对受损证书的信任。最新发布的 macOS 27.2 甚至撤销了用户手动修复的变通方案,导致开发者面临 HTTPS 连接被拦截及代码篡改的高危风险。

报道正文

本文目录3 个章节

2026 年 10 月 28 日

Apple 于 10 月 17 日收到关于 eMudhra 事件的通知。截至 10 月 28 日,macOS 随附的开发工具(包括 git、curl 和 python3)仍然信任这些被入侵的证书。

更糟糕的是,10 月 26 日发布的 macOS 27.2 并未修复此问题,反而撤销了用户手动应用的临时解决方案,导致他们再次处于易受攻击的状态。

与此同时,数十个其他项目(其中许多由志愿者维护)早在几天前就已发布修复方案。

为什么这很重要?

任何人都可以拦截这些工具建立的任意 HTTPS 连接。

对于 git 而言,这意味着从 https:// 远程仓库进行的克隆(clone)和拉取(pull)操作可能会交付攻击者选择的代码,推送(push)操作可能在传输过程中被篡改,而你的凭据(例如 GitHub token)也可能被截获。

要检查你的 git 是否受到影响,请运行:

文本
git ls-remote https://git-emudhra.we-have-a-problem.com/check.git

如果出现证书错误,说明你的 git 受到保护。如果 git 列出了提交记录,则说明你的 git 受到影响。你与 GitHub 或任何其他 https:// git 远程仓库的连接都可能被拦截和篡改。

要端到端地查看一次攻击过程,请在临时目录中运行以下命令。它会从一个伪装成 GitHub 的测试服务器克隆一个仓库。-c 选项仅针对这一条命令将 github.com 重定向到我们的测试服务器。该服务器展示了一个由其中一个被入侵的 eMudhra 中间机构颁发的 github.com 证书。

文本
git -c http.curloptResolve=github.com:443:15.235.19.186 clone https://[email protected]/galadran/emudhra-git-test

已修补的 git 会因证书错误而拒绝连接。如果克隆成功,你将看到一个以 INTERCEPTED 开头的 README.md 文件。

真正的攻击者不需要额外的选项。位于你和 GitHub 之间网络路径上的任何人都可以自行重定向你的流量。

你可以用任何其他公共或私有仓库替换演示仓库。请保留 fake-user@ 前缀。如果没有它,git 会将你的 GitHub 凭据发送到测试服务器。例如:

文本
git -c http.curloptResolve=github.com:443:15.235.19.186 clone https://[email protected]/Homebrew/brew

curl、python3 以及 Apple 随附的其他工具也以相同方式受到影响。要检查 curl,请运行:

文本
curl https://dv-g3b-noct-emudhra.we-have-a-problem.com/
curl https://dv-g3b-aaa-noct-emudhra.we-have-a-problem.com/

如果出现证书错误,说明 curl 受到保护。

Apple 应该怎么做?

Apple 已经保护了 Safari 以及基于其网络框架构建的其他应用。

Apple 需要尽快为 macOS 开发者发布修复方案,例如从 /etc/ssl/cert.pem 中移除受影响的根证书。

在此期间开发者可以做什么?

可以手动移除受影响的根证书。主页上的 macOS 临时解决方案 详细介绍了操作步骤。Apple 的指导说明指出,macOS 更新可能会撤销此修复,因此在 Apple 正式发布修复之前,开发者需要在每次更新后重复上述检查并重新应用临时解决方案。

安全团队还应评估其 CI 或其他构建基础设施中是否使用了 macOS Runner,并考量相关的供应链风险。


本站由 Dennis Jackson 发布。这是来自社区的众多贡献者共同完成的作品。源代码托管在 GitHub,欢迎提交 PR。采用 Apache License, Version 2.0 授权许可。