macOS 的 Git 仍信任被攻破的 eMudhra 证书
Ten days later, Git on macOS still trusts the compromised eMudhra certificates
Apple 早在 10 月 17 日就收到了关于 eMudhra 证书被攻破的通知,但截至 10 月 28 日,macOS 自带的 git、curl 和 python3 等开发工具依然信任这些 compromised certificates。更糟糕的是,10 月 26 日发布的 macOS 27.2 不仅未修复漏洞,反而撤销了用户手动应用的临时修复方案,导致开发者再次暴露风险。这意味着攻击者可以拦截 HTTPS 连接,篡改 git 克隆的代码,甚至窃取 GitHub tokens。相比之下,许多由志愿者维护的项目早已完成修复。Apple 需尽快移除受影响的根证书以保护开发者,在此之前,用户必须手动执行 workaround 并警惕每次系统更新带来的风险。
对于 git 而言,这意味着从 https 远程仓库的克隆和拉取操作可能会交付攻击者选定的代码,推送操作可能在传输中被篡改,而你的凭证(如 GitHub tokens)也可能被拦截。
HN 评论区
349- chrisweekly
没错,受影响的不只是 git,还有一堆系统自带的工具;macOS 信任了这些有问题的证书,而依赖系统信任链的这些工具也都中招了。我用的 git 和 curl 都是 homebrew 安装的,但还没确认过这是否会影响这里的问题。
苹果的指导居然是让用户手动编辑证书链,而且还得指望后续的 OS 更新可能会把你的修复方案回滚,重新引入漏洞(这种情况至少已经发生过一次了),这简直离谱。
- jrochkind1
macOS 竟然还没有从系统级的 /etc/ssl 中移除这些证书,这似乎是个大问题,影响的不仅仅是系统自带的 git。我猜 /etc/certs 不被大多数图形界面的 Mac 软件使用?Linux 和 macOS 上系统级证书管理的混乱状态,真的令人沮丧。
如果苹果还想把自己标榜为“安全先行者”,那在系统更新中把被撤销的 CA 证书从 /etc 目录里删掉,应该是一件很简单的事吧?
- truelson
这是苹果(官方自己)推荐的修复方案:https://support.apple.com/en-us/149555
基本上每个 Mac 开发者都应该运行这个补丁。
- qaz_plm
- kryptiskt
我说苹果应该照搬 Windows Update 时,可不是在讽刺。我真搞不懂他们是怎么走到这一步的,居然连一个能在庞大的系统更新之外打小补丁的方法都没有。
- faxmeyourcode
虽然目前没有证据证明有人在这近一年半的时间里知道这些弱密钥的存在(当时几乎所有系统都信任它们),也没有证据表明因此发生了野外的中间人攻击,但你可以想象,如果某个三字母机构(情报机构)哪怕只有 10 天的机会,去窃取高层重要人物的凭证,那收益会有多大。
我没有证据或证明,但我确信这次 wrap/unwrap 密钥生成的闹剧是蓄意为之,弱密钥是被情报机构或政府发现并保密的,随后被用来利用他们的对手。
如果你能控制机场网络,或者控制免费的公共 WiFi,你甚至不需要执行传统的中间人攻击。流量可以以明文形式被收集。我们必须接受这种远程可能性的存在:这种情况可能已经持续了一年半以上。如果没那么久,那至少在过去的 10 天里肯定发生了。
- lrvick
人们使用苹果产品,是因为他们想把操作系统的所有控制权委托给一家自认为最懂行的公司。如果你信任苹果,那你显然也应该信任 eMudhra。
如果你发现自己无论如何都不信任 eMudhra,那你或许该选择一个允许世界上任何经过严格审查且有能力的安全研究人员做出贡献的操作系统。
- commandlinefan
看来我们所有人都已经……放弃证书撤销机制了?CRL 和 OCSP 的设计初衷正是为了解决这类问题,但它们似乎都被视为不可行而被抛弃了,且至今没有替代品。
- gringofyx
一个扁平的 cert.pem 文件(或类似文件)无法表达“不信任这个中间证书”。
macOS 已经拥有所需的验证器(Security.framework/trustd 路径,它保护了 Safari)。如果 macOS 能让命令行工具也通过它进行验证就好了。
- saagarjha
我不意外这里发生的情况是:苹果本周有硬件要发布,需要尽快推出 27.2 版本以支持这些新硬件,结果“太晚了”,无法合并证书存储的变更。当然,我想这里的大多数人都认为这完全不可接受,我也基本同意他们的看法,但不幸的是,苹果从未具备快速验证发布或推送小补丁的能力。他们尝试过,嗯,大部分努力都完全没有奏效。我很好奇,面对每周都可能针对其操作系统出现的新完整证书链,或者 AI 未来会带来的各种情况,他们将如何应对。