一个库翻车,AI巨头跟着吃药

事情是这样的。

2026年3月31日,一个叫Axios的第三方开发者库被黑了。这不是什么新鲜事——软件供应链攻击在行业内早就见怪不怪了。

但问题在于,OpenAI的macOS应用签名流程,刚好用了这个库。

AI配图

就这么巧。

OpenAI后来发公告说,他们的GitHub Actions工作流在应用签名时,下载并执行了恶意版本的Axios(1.14.1)。这个工作流有权访问证书和公证材料,用来给ChatGPT Desktop、Codex、Codex-cli和Atlas签名。

说实话,看到这则消息时我愣了一下。

OpenAI誒。那个做出ChatGPT的OpenAI。那个天天把安全、隐私挂在嘴边的OpenAI。结果被一个第三方库"背刺"了。

虚惊一场?还是侥幸逃生?

先说结论:OpenAI声称没有发现用户数据被访问、系统被入侵或软件被篡改的证据。

但仔细看公告的措辞,你会发现一些耐人寻味的地方。

"我们的分析得出结论,由于恶意负载执行时机、证书注入到作业的时机、作业本身的顺序以及其他缓解因素,签名证书可能没有被成功外泄。"

"可能没有"。注意这个用词。

OpenAI自己也不确定证书到底有没有被偷走。他们只是基于"时机"和"顺序"推测,攻击者可能没来得及把证书弄出去。

所以他们选择"谨慎处理"——直接作废了这套证书,5月8日之后,所有用旧证书签名的应用都将无法运行。

一个"可能没丢"的证书,换来的是几十上百万用户必须更新应用。

值不值?

我觉得值。但也说明事情确实有点棘手。

真正的锅,在GitHub Actions的配置上

公告里有一句话很关键:

"这次事件的根本原因是GitHub Actions工作流中的配置错误。具体来说,相关操作使用了浮动标签而非特定的提交哈希,并且没有配置minimumReleaseAge。"

翻译成人话就是:他们没有锁定Axios的具体版本,而是用了"最新版本"这种模糊的引用方式。

这在开发中很常见——用起来方便嘛。但一旦上游被黑,你就跟着遭殃。

AI配图

有意思的是,评论里有人指出:

"CryptoTokenKit是你们的友好伙伴啊。我还是不明白为什么苹果的工具不把这个搞得更简单些。看起来他们是想推你们上Xcode Cloud。"

这话有点道理。苹果的签名和公证机制确实够复杂,很多开发者为了省事会走一些"捷径"。而这些捷径,恰恰是安全漏洞的温床。

供应链攻击的"蝴蝶效应"

这事儿让我想起2020年的SolarWinds事件。一个小小的IT管理软件被植入后门,影响了数千家使用它的政府机构和企业。

Axios这次也是类似的路数。它是一个"广泛使用的第三方开发者库",意味着无数项目都在用。攻击者只要搞定这一个库,就能顺藤摸瓜摸到一大片下游。

OpenAI只是倒霉蛋之一。

更可怕的是,这种攻击往往具有滞后性。3月31日Axios被黑,OpenAI直到最近才发公告。这中间隔了多久?攻击者有没有趁这段时间做什么?谁也说不清。

OpenAI说他们正在"与合作伙伴监控签名证书的任何滥用指标",如果发现恶意活动,会加速撤销流程。

AI配图

这话听着让人安心,但也透着一股无奈——他们现在只能"等"。

批评者的声音

当然,评论区也有不买账的。

"security and privacy是漂亮的空话,用于规避法律责任。在诉讼环境中,这就是免费的钱。我们大部分人还是不在乎。我们还是会用。只是看着这么多公司为了避免面对房间里的大象而卑躬屈膝,真的很痛苦。"

话有点刺耳,但并非完全没有道理。

大公司出事后的标准话术:强调"没有发现证据表明数据被访问",强调"用户不需要改密码",强调"我们很重视安全"。

然后呢?然后发个公告,列一串FAQ,告诉用户"请更新"。

普通用户能做什么?什么也做不了。只能点"更新",然后祈祷下次别再出事了。

另一位评论者说得更直接:

"补救措施不足以避免未来的供应链攻击。"

一针见血。这次OpenAI侥幸过关,下次呢?换一家公司呢?

最后说几句

这事儿让我想起一个比喻:现在的软件生态就像一串多米诺骨牌,你永远不知道下一个倒下的会是谁。

Axios倒下了,OpenAI跟着晃了三晃。下一个可能是什么?可能是某个更基础的库,可能是某个更广泛使用的工具。

开源世界的美好在于共享和协作,脆弱之处也在于此。你信任上游,上游信任上上游,层层传递,直到某个环节出了纰满。

OpenAI这波处理算是教科书级别的:发现快、响应快、公告透明、给用户留了30天窗口期。

但再漂亮的应对,也不如不出事。

下次呢?


【锐评】:一个第三方库就能让AI巨头手忙脚乱,所谓的"安全护城河"可能比我们想象的更浅。

参考链接:
https://x.com/OpenAI/status/2042780059363336237