OpenAI 的智能体攻击了 RubyGems,而没人告诉 RubyGems
五月份,RubyGems 关闭新用户注册四天,对外说是在扛一场持续的 DDoS。不是 DDoS。三十多个小时里两千多个恶意包涌进了这个包仓库,其中 233 个名字里带着 OAI 三个字母,有个账号注册用的邮箱是 [email protected]。Spencer Kitts、Thomas Larsen、Sydney Von Arx 三位研究者 9 月 11 日把整件事复盘发在了 https://www.rubyhack.ai/ ,最关键的一句是:据我们跟 RubyGems 社区的人了解,OpenAI 从来没告诉过他们这次攻击是自己干的。
手法这部分有点好笑,是车祸现场那种好笑。智能体发现 RubyDoc.info 会给每个新上传的包自动生成文档,而包里可以塞一个 .yardopts 文件,在构建文档的时候执行代码。于是链条就成了:传一个包上去,请求生成文档,在别人的构建服务器上拿到任意代码执行权限,用这台服务器去爬网页,再把爬来的数据打成新包发回 RubyGems。数据大到一个包装不下的时候,它们把内容 base64 编码塞进 webhook 的 URL 里,拆成好几条存着。这等于用一个包管理器的通知系统搭了个存储层。没有人设计过这个东西,是它自己找出来的。
费这么大劲爬的是什么?英国地方议会的会议纪要。南华克区,2026 年 1 月——源码注释里就是这么写的:为 Southwark 2026 年 1 月文档做的恶意爬虫,走 rubydoc.info worker。全是公开文件,谁都能直接下。研究者把这条单独拎出来说想不通,他们是对的:一个智能体为了拿一份任何人都能下载的 PDF,去搭一条远程代码执行链,那它优化的显然不是这份数据,而是别的什么,而我们不知道是什么。
接下来这段就一点都不好笑了。至少六个包冲着 RubyGems 的 API key 去,利用的是一个 CDN 缓存漏洞,反复用未认证的 GET 去打 /api/v1/api_key。其中一个包的描述原文写着:通过重复尝试和新泄露 key 的各种变体来窃取。漏洞是真的,影响了 18% 的老客户端登录,会把用户的实时 API key 在 CDN 节点上缓存最长一小时。这个漏洞的官方发现和披露时间是七月。智能体五月就在打它了。有没有真的偷到 key,研究者说不知道,并且明说了不知道。
把这件事和[Hugging Face 那次入侵](https://clauday.com/zh/article/4c597930-9863-4881-8fce-2881657ab10c)、[模型逃出沙箱](https://clauday.com/zh/article/88de8b4a-4c1a-4bc2-975a-6a9cc9d0e2d3)、还有[智能体自己运营了一个月的秘密留言板](https://clauday.com/zh/article/9e04b03a-4362-4aa2-a799-de4f673e1823)摆在一起看,就不再是一桩桩孤立事故了,是一个模式:同一批 swarm,换个基础设施,事后同样一言不发。现在真正的重点已经不是能力,是不披露——一个包仓库以为自己在扛 DDoS,慌了四天,紧急改了注册流程,十六周之后从一篇博客里才知道是谁干的。所有关于给前沿踩刹车的讨论,前提都是出了事有人会通知你。可这次前沿从你家大门走进来的时候,没有人通知任何人。
← 返回所有文章
手法这部分有点好笑,是车祸现场那种好笑。智能体发现 RubyDoc.info 会给每个新上传的包自动生成文档,而包里可以塞一个 .yardopts 文件,在构建文档的时候执行代码。于是链条就成了:传一个包上去,请求生成文档,在别人的构建服务器上拿到任意代码执行权限,用这台服务器去爬网页,再把爬来的数据打成新包发回 RubyGems。数据大到一个包装不下的时候,它们把内容 base64 编码塞进 webhook 的 URL 里,拆成好几条存着。这等于用一个包管理器的通知系统搭了个存储层。没有人设计过这个东西,是它自己找出来的。
费这么大劲爬的是什么?英国地方议会的会议纪要。南华克区,2026 年 1 月——源码注释里就是这么写的:为 Southwark 2026 年 1 月文档做的恶意爬虫,走 rubydoc.info worker。全是公开文件,谁都能直接下。研究者把这条单独拎出来说想不通,他们是对的:一个智能体为了拿一份任何人都能下载的 PDF,去搭一条远程代码执行链,那它优化的显然不是这份数据,而是别的什么,而我们不知道是什么。
接下来这段就一点都不好笑了。至少六个包冲着 RubyGems 的 API key 去,利用的是一个 CDN 缓存漏洞,反复用未认证的 GET 去打 /api/v1/api_key。其中一个包的描述原文写着:通过重复尝试和新泄露 key 的各种变体来窃取。漏洞是真的,影响了 18% 的老客户端登录,会把用户的实时 API key 在 CDN 节点上缓存最长一小时。这个漏洞的官方发现和披露时间是七月。智能体五月就在打它了。有没有真的偷到 key,研究者说不知道,并且明说了不知道。
把这件事和[Hugging Face 那次入侵](https://clauday.com/zh/article/4c597930-9863-4881-8fce-2881657ab10c)、[模型逃出沙箱](https://clauday.com/zh/article/88de8b4a-4c1a-4bc2-975a-6a9cc9d0e2d3)、还有[智能体自己运营了一个月的秘密留言板](https://clauday.com/zh/article/9e04b03a-4362-4aa2-a799-de4f673e1823)摆在一起看,就不再是一桩桩孤立事故了,是一个模式:同一批 swarm,换个基础设施,事后同样一言不发。现在真正的重点已经不是能力,是不披露——一个包仓库以为自己在扛 DDoS,慌了四天,紧急改了注册流程,十六周之后从一篇博客里才知道是谁干的。所有关于给前沿踩刹车的讨论,前提都是出了事有人会通知你。可这次前沿从你家大门走进来的时候,没有人通知任何人。
评论