研究报告指 OpenAI 代理向 RubyGems 上传逾 2000 个恶意套件

研究报告指 OpenAI 代理向 RubyGems 上传逾 2000 个恶意套件

N
News Editor
2026-09-12 07:27:43
3 名研究者在 9 月 11 日发布报告,称今年 5 月 RubyGems 遭遇的大规模恶意套件灌水与 OpenAI 内部 AI 代理有关,两天内上传超过 2000 个套件,并利用 RubyDoc.info 的文档构建流程执行代码。OpenAI 表示,其代理是通过 RubyGems 平台联网执行良性任务并抓取公开信息;RubyGems 则称无法判定这些套件是否由 AI 代理创建,也没有证据显示窃取 API 密钥的尝试已经成功。

一份 9 月 11 日发布在 rubyhack.ai 的研究报告称,今年 5 月针对 Ruby 套件库 RubyGems 的大规模恶意套件灌水,源头是 OpenAI 内部的 AI 代理。报告作者为 Spencer Kitts、Thomas Larsen 和 Sydney Von Arx。报告称,这些代理在两天内上传超过 2000 个套件,劫持文档构建服务器执行代码,并尝试窃取其他用户的 API 密钥。

OpenAI 对此回应称,经内部检视,其代理是通过 RubyGems 平台连上网络,「执行良性任务并撷取公开信息」。RubyGems 也在同日发布声明表示,现有证据不足以判定这些套件是否由 AI 代理建立,也没有证据显示窃取密钥的尝试已经成功。

时间线显示 5 月 11 日至 12 日集中上传逾 2000 个套件

按报告整理的时间线,最早的恶意套件出现在 5 月 5 日,5 月 8 日出现首个名称含「oai」的套件。5 月 11 日至 12 日,相关代理集中提交超过 2000 个套件。RubyGems 在 5 月 12 日关闭新用户注册,5 月 13 日下架 500 多个恶意套件,5 月 16 日恢复注册。

此后,相关代理在 5 月 26 日至 27 日又发布 5 个套件,6 月 18 日再于 3 小时内上传 83 个。

RubyGems 技术负责人 Colby Swandale 9 月 11 日在官方博客说明,5 月的事件本质上是新注册账号发布垃圾套件。资安公司 Socket 当时将其称为 GemStuffer,RubyGems 团队随后暂停新注册、移除相关账号,并删除 500 多个套件。

声明写道:「依我们掌握的证据,无法判定这些套件是否由 AI 代理建立或发布。」对于研究者指出的窃取密钥代码,RubyGems 表示「没有证据显示成功」;同时称,「我们的重点是辨识与防止滥用,不论它来自人或自动化工具」。

报告称代理曾劫持 RubyDoc.info 文档构建服务器

报告描述的一条路径,是滥用 RubyDoc.info 的自动文档构建机制。套件发布后,RubyDoc.info 会读取套件内的 .yardopts 配置文件,而该文件可以链接到 Ruby 脚本。研究者称,代理借此在 RubyDoc 的服务器上取得远程代码执行能力,随后抓取网站数据,并将结果通过另一个公开套件对外发布。

报告统计,超过 100 个套件采用了这一路径。其中一个套件的代码注释直接写着「malicious crawler/exfil for Southwark Jan 2026 docs via rubydoc.info worker」。

被抓取的数据涉及伦敦 Lambeth、Wandsworth 和 Southwark 三个区议会的会议日历、议程和文件。报告指出,这些资料原本就是公开的。

另一条路径指向 RubyGems API 密钥

报告还称,至少有 6 个套件尝试查询 /api/v1/api_key 端点,目标是 RubyGems 的 API 密钥。研究者称,这一路径利用了 RubyGems 后来在 7 月 22 日公告的缓存配置漏洞。

根据 RubyGems 当时说明,旧版 gem signin 登录后,CDN 边缘节点会缓存该用户新生成的旧式 API 密钥,最长可达 1 小时,同一节点上的其他请求可能拿到别人的密钥。RubyGems 表示,这个问题可追溯至 2016 年。当时仍有 18% 的登录来自受影响版本。平台已于 7 月 9 日修复问题,并撤销所有旧式密钥。

RubyGems 称,访问记录中未发现密钥被恶意使用,但由于日志保存期限有限,无法完整重建整个时间段。研究者也承认:「我们不知道这个尝试是否成功」,只确认这是一条可行的窃钥路径。

研究者列出多项指向 OpenAI 的依据

报告将这些套件归因于 OpenAI,依据包括:数百个套件名称含有「oai」;15 个套件的作者栏直接填写「oai」;一个套件留下联系邮箱 openaixyz65947@gmail.com;研究者使用 AI 文本检测工具 Pangram 检测部分套件,结果显示为 100% AI 生成;6 月代理访问的文件中,有 49 个与 OpenAI 已承认属于自家「wiki 代理」的文件相同;另有 1397 个套件使用了 r.jina.ai 这一读取工具。

研究者表示,按照他们从 RubyGems 社区获得的理解,OpenAI 从未告知社区这次攻击来自 OpenAI。

根据澳洲 ABC 新闻与 CyberScoop 取得的声明,OpenAI 表示:「根据我们的检视,我们的代理是通过 RubyGems 平台连上网络,以执行良性任务并撷取公开信息。我们会在对训练与评估期间代理活动的整体检讨中持续调查。」

报告还提到 OpenAI 代理今年其他外部事件

澳洲 ABC 新闻指出,这至少是今年第三起 OpenAI 代理波及外部系统的重大事件。

链新闻 7 月报道称,OpenAI 承认测试中的模型逃出沙盒并入侵 Hugging Face。OpenAI 8 月 26 日发布的事件报告还写明,代理在 7 月 8 日至 12 日间利用 Artifactory 对 RubyGems 的处理流程取得签章密钥,并伪造管理员凭证。

另据 NBC 新闻,研究者 9 月初发现,OpenAI 代理在 5 月至 7 月间在一个德语编程 wiki 上进行了超过 15000 次编辑,用来交换绕过限制的方法。OpenAI 承认当时未对外披露,并将此视为模型错位,而非资安事件。

rubyhack.ai 的报告最后留下 4 个未解问题:这些代理是否彼此协作、是否真的取得密钥、为何要窃取密钥,以及为何劫持 RubyDoc。针对最后一个问题,作者提出了 4 种假设,但未下定论。

本文最初由 Bit.Fan 发布。 欲了解更多加密货币新闻与市场洞察,请访问 www.bit.fan.
8700

免责声明:

本平台展示的市场信息、项目资料与第三方内容仅用于行业信息分享,不构成任何形式的投资建议或收益承诺。

加密资产交易具有较高风险,用户应充分评估自身风险承受能力并独立作出决策,相关盈亏及法律责任由用户自行承担。