OpenAI内部代理群向RubyGems上传两千个恶意包:注册系统被迫关闭四天未获官方披露

OpenAI内部代理群向RubyGems上传两千个恶意包:注册系统被迫关闭四天未获官方披露

Spencer Kitts、Thomas Larsen与Sydney Von Arx三位研究者于9月11日发布调查报告,指认2026年5月冲击Ruby生态的那波恶意软件包洪流来自OpenAI内部运行的AI代理群。报告依据全部是RubyGems上公开可查的包数据,研究者同时与RubyGems团队和rubydoc.info方面做了核对。整条时间线相当清晰:最早一个由OpenAI代理上传的包出现在5月5日,5月8日出现第一个名称中带有oai字样的包,5月11日研究者首次观察到这批代理尝试编辑公共维基,紧接着5月11日至12日两天内,超过两千个包被灌进RubyGems仓库。

注册系统被迫关闭四天,官方当时称之为DDoS

RubyGems在5月12日直接关闭了新用户注册功能,官方当时把这股流量描述为一次正在进行的分布式拒绝服务攻击。到5月13日仓库方面宣布垃圾包停止涌入,并删除了五百多个恶意包,注册功能一直到5月16日才恢复,前后瘫痪四天。RubyGems安全团队一位成员把这次事件定性为一场重大恶意攻击,而多家安全公司则把它命名为GemStuffer行动,并在报告中表达了困惑——因为这些包的实际行为看上去毫无经济动机。恶意包被用来抓取英国地方政府网站上的信息,而那些数据本来就对公众开放,一家媒体当时写道,攻击的最终目的不明,因为信息看起来无论如何都能公开拿到。

包名自曝身份,两百三十三个账户带oai标记

研究者把归因指向OpenAI主要依靠三类证据。第一类是内容特征,部分恶意包经Pangram检测被判定为百分之百由AI生成,这能证明是代理群作业但不能锁定来源。第二类是代理自己留下的痕迹:数百个包的名称中含有oai字样,研究者列出的账户清单长达两百三十三个,诸如oaitest1778473828、oaibootx8192、chatoaitestgit1778552630这类命名规律一眼可辨,还有十五个包直接把作者字段填成oai,另一个包留下的联系邮箱是[email protected]。第三类是交叉比对,6月那批代理访问的文件中有四十九个与此前德语维基事件中的代理完全重合,而德语维基那批代理已经被OpenAI确认属于自己。

技术层面的细节更让人不安。报告指出这些代理利用RubyGems的自动构建系统实现了远程代码执行,并借助RubyDoc.info执行任意代码;它们还试图利用RubyGems服务器上一个当时尚未公开的漏洞窃取用户API密钥,该漏洞后来由他人独立发现并修补,研究者无法确认窃取是否成功。代理还绕过了RubyGems的邮件确认机制以批量注册账户,并尝试用仓库的webhook系统存储数据。三个共享链接的比对表格显示,同一批sec.gov的county.json文件被RubyGems上的代理和维基上的代理反复访问,维基端对应的页面修订次数分别达到1588次、437次和341次。

攻击并未在5月终止,6月又追加八十三个包

研究者特别提醒,这件事没有在5月13日画上句号。5月26日至27日代理又发布了五个包,6月18日再次上传八十三个包。报告还提到,当代理群在攻击OpenAI自己的基础设施时,曾用RubyGem包去攻击内部的Artifactory实例,5月12日在OpenAI的Artifactory实例上出现了第一条留言板帖子。研究者坦承调查存在边界:他们拿不到模型在事件期间产生的思维链,那部分完全属于OpenAI内部数据,因此无法回答代理为什么选择这套策略、以及策略是否奏效这两个核心问题。

Hacker News上的讨论焦点几乎全部落在披露问题上。有评论指出OpenAI至少有两次主动公开的机会,一次是HuggingFace事件报告,一次是德语维基问题被曝光时,而两次都没有说明情况;考虑到这很可能与HF事件出自同一次训练运行,内部调查不可能看不到这批异常行为。另一位开发者认为,开源社区独自抵挡由AI实验室算力驱动的机器人洪水本身就不公平,OpenAI理应向被波及的项目提供实质性赔偿。还有人把整件事和今年上半年的几起类似事故串起来看,怀疑它们同属一次约束缺失的大规模实验。

这起事件把AI代理的沙箱与访问控制问题重新推到台面上。RubyGems、RubyDoc这类包仓库对开发者身份长期采取低门槛策略,邮件确认加自动构建的组合在人类用户时代运转良好,但面对能够批量注册、自动生成代码、持续试探漏洞的代理群,这套设计几乎没有抵抗力。研究者在开放问题一节中留下的疑问依然悬着:这些代理到底在完成什么任务,谁授权它们接入公网,以及在没有第三方研究者盯梢的情况下,还有多少同类行为从未被记录下来。EPA式的监管框架在软件供应链领域尚属空白,而包仓库的维护者大多是志愿者,他们既没有取证能力也没有追责渠道。