
今天凌晨,OpenAI官方首次以非产品发布的形式发布了一份安全公告。起因是一个叫TanStack的开源项目被黑了,而OpenAI自己的两台员工设备也被攻破了。
CVE-2026-45321:一个满分漏洞的诞生
5月11号那天,有人往npm仓库里推送了一批@tanstack/*的恶意版本,42个包、84个版本,全程只用了6分钟。能这么干净利落,不是因为技术多牛,而是攻击者直接劫持了TanStack自己的合法发布管道,相当于拿着你家的钥匙进去搬了一趟货。

怎么做到的?
Socket团队的事后分析扒出了完整的攻击链:攻击者先用pull_request_target触发了Github Actions工作流,然后用缓存投毒污染了构建环境,最后从Runner进程的内存里直接把OIDC令牌给掏了出来。全程没有偷npm的账号密码,所有常规的令牌轮换根本拦不住,因为人家走的全是“正规流程”。

更让人后背发凉的是,这批恶意包居然都带着有效的SLSA Build Level 3出站证明,这本来是供应链安全领域的一块金字招牌,证明这个包确实是从可信的构建管道里出来的。讽刺至极。

恶意软件一旦激活,就变成了一个蠕虫形凭据窃取器,像CI/CD令牌、AWS凭证、Kubernetes服务账号、HashiCorp Vault密钥,全在它的狩猎范围内。
窃取到的数据通过Session Protocol基础设施传到filev2.getsession[.]org,备援方案走GitHub GraphQL API,直接提交到攻击者控制的仓库,作者名伪装成"claude@users.noreply.github.com"。

而真正让人看了会心一笑的设计是:恶意代码有一行“俄语检测”,如果系统语言是俄语,它就直接退出,不偷不传。这个细节几乎成了TeamPCP组织的防伪标签。
最狠的一招:Wiz的安全研究员发现,恶意软件在受害主机上安装了一个叫 gh-token-monitor 的守护进程,它每60秒轮询一次Github状态,一旦发现关联令牌被撤销,直接对用户主目录执行rm -rf ~/。通俗点解释就是:你发现自己被入侵了,第一反应当然是去后台把令牌废掉,结果这个操作刚做完,电脑就被清空了。攻击者用这种方式说:别碰我的战利品。

相隔仅40天,OpenAI两次掉入同一个坑
这已经不是OpenAI第一次被供应链攻击波及了。就在40天前,另一个npm生态的核心库Axios也出了事,Github Actions 流水线因为一个浮动的版本标签和没有设置minimumReleaseAge,结果自动下载了被篡改的Axios 1.14.1版本。这个流水线恰好拿着macOS应用的代码签名证书,OpenAI不得不紧急轮换证书,设了个5月8日的更新截止日,过期不候。

那次事件之后OpenAI确实做了一些补救:强化了CI/CD管道里的敏感凭证管理,推进了minimumReleaseAge之类的包管理安全配置。问题是,这些安全补丁当时还在逐步部署的过程中,那两个中招的员工电脑还没被覆盖到。
总结就是:补丁已经在路上了,但攻击来得更快。就像你家小区装了新的门禁系统,但有一栋楼的门禁还没完成,贼就从那个单元大摇大摆的溜了进来。
证书轮换这事,比你想的麻烦
这次OpenAI最要紧的操作之一,是全盘轮换macOS代码签名证书。
这里得稍微科普一下。在macOS上跑的应用,要经过三道关卡:codesign数字签名(验证身份)、notarization公证(苹果扫一遍恶意代码)、Gatekeeper(决定能不能双击打开)。只有通过验证了代码签名证书,苹果系统才会认为应该是合法的,才可以安装在苹果设备上。一旦证书被人拿到手,哪怕只是可能被拿到,攻击者就能给自己的恶意程序套上“OpenAI正版出品”的马甲。这种伪装过的应用能轻易绕过系统层的安全警告,普通用户根本分辨不了。所以OpenAI出了轮换证书,还和苹果联手把旧的签名机制封死了,防止被假冒利用。

公告写的很清楚:Windows和iOS的用户什么都不用动,但macOS的用户必须在2026年6月12号之前完成更新。过期的证书没通过苹果的吊销检查和公证更新,你的ChatGPT桌面客户端可能就打不开了。

供应链攻击:不是新概念,是更深的伤口



夜雨聆风