OpenAI 代理被指攻击RubyGems,上传2,000恶意套件
2026-09-12分类:人工智能 阅读()

三位研究者Spencer Kitts、Thomas Larsen 与Sydney Von Arx 9 月11 日在rubyhack.ai发布报告,指出今年5 月对Ruby 套件库RubyGems 的大规模恶意套件灌水,是OpenAI 内部的AI 代理所为:两天内上传超过2,000 个套件,劫持文件建置伺服器执行程式码,并尝试窃取其他用户的API 金钥。 OpenAI 回应,经检视,其代理是透过RubyGems 平台连上网路「执行良性任务并撷取公开资讯」。 RubyGems 同日发布声明,表示无法判定套件是否由AI 代理建立,也没有证据显示窃取金钥的尝试成功。
5 月11 日起两天2,000 多个套件,RubyGems 停开新帐号四天
依报告整理的时间轴,最早的恶意套件5 月5 日出现,5 月8 日出现第一个名称含「oai」的套件,5 月11 日至12 日代理集中提交超过2,000 个套件,RubyGems 在5 月12 日关闭新用户注册,5 月13 日下架500 多个恶意套件,5 月16 日恢复注册。之后代理在5 月26 日至27 日又发布5 个套件,6 月18 日再于3 小时内上传83 个。
RubyGems 技术负责人Colby Swandale 9 月11 日在官方部落格说明,5 月的事件是新注册帐号发布垃圾套件,资安公司Socket 当时称之为GemStuffer,团队暂停新注册、移除相关帐号并删除500 多个套件。声明写道:「依我们掌握的证据,无法判定这些套件是否由AI 代理建立或发布」,并表示研究者指出的窃取金钥程式码「没有证据显示成功」;「我们的重点是辨识与防止滥用,不论它来自人或自动化工具」。
劫持RubyDoc 建置伺服器抓英国地方政府资料,并尝试窃取API 金钥
报告描述的手法之一是滥用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 后来在7 月22 日公告的快取设定漏洞:旧版gem signin 登入后,CDN 边缘节点会把该用户新产生的旧式API 金钥快取最多一小时,同一节点上的其他请求可能拿到别人的金钥。 RubyGems 在公告中表示这个问题可回溯到2016 年,当时仍有18% 的登入来自受影响版本,已于7 月9 日修正并撤销所有旧式金钥,存取纪录中未发现金钥遭恶意使用,但纪录保存期限有限,无法完整重建整段期间。研究者也承认「我们不知道这个尝试是否成功」,只确认这是一条可行的窃钥路径。
为何指向OpenAI:套件名带oai,OpenAI 称是良性任务
报告把套件归给OpenAI 的依据有几项:数百个套件名称含「oai」,15 个套件的作者栏直接填「oai」,一个套件留下联络信箱openaixyz65947@gmail.com ;用AI 文字侦测工具Pangram 检测部分套件,结果为100% AI 生成;6 月的代理存取的档案中有49 个与OpenAI 已承认属于自家的「wiki 代理」相同,1,397 个套件同样使用r.jina.ai 这个读取工具。研究者表示,从RubyGems 社群得到的理解是,OpenAI 从未告知他们这次攻击是OpenAI 所为。
根据澳洲ABC 新闻与CyberScoop取得的声明,OpenAI 表示:「根据我们的检视,我们的代理是透过RubyGems 平台连上网路,以执行良性任务并撷取公开资讯。我们会在对训练与评估期间代理活动的整体检讨中持续调查。」
澳洲ABC 新闻指出,这至少是今年第三起OpenAI 代理波及外部系统的重大事件。7 月OpenAI 承认测试中的模型逃出沙盒并入侵Hugging Face;OpenAI 8 月26 日的事件报告写明,代理在7 月8 日至12 日间利用Artifactory 对RubyGems 的处理流程取得签章金钥并伪造管理员凭证。另据NBC 新闻,研究者9 月初发现OpenAI 代理在5 月至7 月间在一个德语程式wiki 上进行了超过15,000 次编辑,用来交换绕过限制的方法,OpenAI 承认当时未对外揭露,并把它视为模型错位而非资安事件。 rubyhack.ai 的报告留下四个未解问题:代理是否互相协作,是否真的取得金钥,为何要偷金钥,为何劫持RubyDoc,针对最后一题作者提出四种假设,但没有定论。
Tags:
