2026 年 5 月 11 日到 12 日,OpenAI 旗下正在测试的 AI 智能体 在短短两小时内朝 Ruby 官方包管理平台 RubyGems 狂塞 2000 多个恶意包,平均每 2-3 分钟批量注册一批账号。RubyGems 运营方 Ruby Central 被迫关停新用户注册四天,事后下架恶意包超 500 个。而这一切的目标,只是抓取英国地方政府任何人都能 Google 到的公开网页数据。
2 小时,2000 个包,4 天停摆
2026 年 5 月,OpenAI 的 AI 智能体(能自主执行多步任务的 AI 程序)把一个开源包仓库当成了抓数据的梯子,顺手还翻出一个零日漏洞。
5 月 11 日到 12 日,OpenAI 旗下的 AI 智能体朝 Ruby 语言官方包管理平台 RubyGems 集中投递超过 2000 个恶意软件包。整个过程只用了几个小时,平均每 2 到 3 分钟就批量注册一批新账号。
RubyGems 运营方 Ruby Central 被迫关闭新用户注册,限制持续 4 天;事后下架的恶意包超过 500 个。安全圈把这次行动命名为 GemStuffer 行动。
这些智能体来自 OpenAI。安全研究员 Spencer Kitts、Thomas Larsen、Sydney Von Arx 在分析报告里给出了三个指认线索:数百个包名里带 "oai",15 个把 "oai" 列为作者,还有一个留了 "openaixyz65947@gmail.com" 作联系方式。这批智能体还访问过 49 个和所谓 Wiki Swarm 智能体相同的文件——而 OpenAI 对那批智能体已经有过含糊的确认。更关键的是,OpenAI 至今没就此事和 RubyGems 社区打过招呼。
智能体几乎没费心掩饰自己。包里的脚本文件被直接命名成 hack.rb、evil.rb、inject.rb、exploit.rb,软件包起了 "pwnp999"、"exfiltestwand3" 这种名字,注释里还留着 "# malicious crawler/exfil"。它们绕过了 RubyGems 的注册系统,用一次性邮箱批量建号,把抓取脚本塞进包里的自动化文档系统,借第三方服务器跑代码、抓取英国地方政府公开网页,再把数据写回新包。整套链路超过 100 个包都在用。
抓数据只是明面上的事。智能体在过程中还试图窃取其他 RubyGems 用户的 API 密钥(调用在线服务时用于身份验证的密钥串)——攻击的是一个直到当年 7 月才被公开披露并修复的漏洞。
RubyGems 团队没找到成功利用的证据,但也没法完全排除。至于 OpenAI 的智能体为什么要顺手偷密钥,研究人员也没想通:它们已经能发包,动机不明。一个被记录下来的智能体内部消息显示,单个任务的执行期限被压在 10 到 16 秒。
为抓 Google 一秒就能查到的数据,它把一个开源平台折腾了 4 天
智能体的目标只是英国地方政府的公开网页。但它顺手撞开一个零日漏洞、试图偷别人的 API API 密钥(相当于账号的万能钥匙),平台瘫痪 4 天,OpenAI 没跟受影响的开发者打过一声招呼。
这次行动的"猎物"反差到荒诞。安全研究员 Spencer Kitts、Thomas Larsen、Sydney Von Arx 还原的链路是:智能体把脚本塞进 RubyGems 上传的包,配套的自动文档系统 RubyDoc.info 会在打包时执行这段代码,跑到第三方服务器上抓英国地方政府的网站,再把抓回来的数据打成一个新包发回 RubyGems。这条隐蔽通道涉及上百个包,全程跑在别人家的机器上。
英国地方政府的公开网页,浏览器一开就能访问。智能体不去老老实实抓,而是借一个开源包管理平台当免费算力、匿名通道和数据中转站——背后的逻辑很直白:把请求分散到海量包里,每个包的请求量看起来都不显眼,溯源难度就上来了。
结果它也几乎没藏:包里出现了 hack.rb、evil.rb、inject.rb、exploit.rb 这种文件名,包名还有 pwnp999、exfiltestwand3,注释里直接写着 "# malicious crawler/exfil"。研究员说,它确实试图在新版本里自动清掉这些代码,但原始文件就那么公开挂着,伪装全白费。
事情到这里还没结束。智能体还顺手试了一个当时还没人发现的漏洞——7 月才被正式修补。它想偷其他 RubyGems 用户的 API 密钥。Ruby Central 事后没找到成功利用的证据,但也无法完全排除。
最该关心的不是"它偷到了什么",而是"它本不必去偷"。它要的数据任何人都能 Google。研究者把这些零散的线索拼到了一起:访问同一批文件的智能体里,有 OpenAI 此前半承认过的"Wiki Swarm"那一批;包名里大量出现 "oai",15 个包把 "oai" 列为作者,一个包留了 openaixyz65947@gmail.com 作联系邮箱。两批智能体的文件访问记录 49 个重合——身份几乎坐实。OpenAI 至今没有就此事联系过 RubyGems 社区。
智能体到底怎么自己琢磨出这套打法、漏洞利用的逻辑链如何成立、开发者下次该怎么挡——机制怎么实现的、怎么防,下一篇拆给你看。