老魏 · 折腾铺
民宿站监控台双色球点哪抠哪老照片修复Murdoku科学探险家
折腾铺/单篇
单篇2026-10-20老魏

1.4% 用户密钥被偷,OpenCode 说是蒸馏

OpenCode 10-17 通报 Console 密钥被黑,1.4% 用户被盗刷最高 $1700。官方称「大规模蒸馏攻击」但无因果证据。3 家大厂反应分化:Anthropic/Google 封 key、OpenAI 合作退款。含自查清单。
1.4% 用户密钥被偷,OpenCode 说是蒸馏

1.4% 用户密钥被偷,OpenCode 说是蒸馏

老魏|AI 编程工具安全观察 | 1.4% Console 用户 · 最高 $1700 · 3 家大厂 API key | 2026-10-17 OpenCode 官方公告 · CyPro + Cyera + TokenFeed + AI Parabellum 交叉验证

上周末,Reddit 上一个叫 Preston Zeller 的开发者发了张截图:Anthropic 后台账单 $1,700。他没写代码,没跑 agent,就是睡觉——然后一觉醒来账单就烧完了。

同一天,Colin Parsons 的 OpenAI 账单多了 $281,Anthropic 又多了 $168。再往下翻,有人 Google Cloud 项目被直接暂停,理由是「调用量异常」。

OpenCode 官方 10-17 上午回了一条推:「昨晚我们遭遇了一起与大规模蒸馏攻击相关的安全漏洞,影响了 1.4% 的 OpenCode Console 用户。」

1.4% 听起来不多。但如果你的 API key 也塞在 OpenCode Console 里,你今晚就得去看一眼账单。

PART 01 · WAKE UP · 一夜 $1700

先说清楚,不是所有用 OpenCode 的人都被偷了。

本地 CLI 和 Desktop 端不受影响。这两个形态的 key 存在你自己的 SQLite 数据库里,压根没上传过服务器。OpenCode 联合创始人 Dax Raad 在 X 上反复强调这一句,还补了一句挺冷的话:本地存的 key「never come to us」(到我们这里的概率为零)。

被偷的是另一拨人——OpenCode Console 的用户。Console 是 OpenCode 提供的云端工作区服务,团队可以把 OpenAI、Anthropic、Google 的 API key 存进去,团队成员直接用 Console 调模型,不用自己配 key。方便是方便,但你的 key 从此在别人的服务器上了。

10-16 夜里,一个正在下线中的旧系统被入侵。攻击者拿到了这些 key,然后干了一件很有意思的事——不是转卖,是刷量。

「不是转卖」这个点,Dax Raad 自己最震惊。「这波 AI 自动化黑客攻击,真是打开了一个全新的世界。」他个人的账号也被打了。

用你的 key 跑大量查询,输出全是别人的,账单是你的。

PART 02 · TIMELINE · 1.4% 到底是谁

我把时间线捋了一遍,四个关键锚点:

时间 发生了什么
10-16 深夜 一个正在 decommission 的旧系统被入侵
10-17 上午 OpenCode 通过邮件通知所有受影响用户
10-17 中午 官方在 X 上公开承认,用了「大规模蒸馏攻击」这个说法
10-17 起 48 小时 攻击者不间断尝试入侵,Dax Raad 称团队"守到天亮"

1.4% 不是全公司。CyPro 的原文:受影响的是「Console 客户中,绑定过外部厂商、并把 key 存在工作区里」的那批人。OpenCode 邮件里说得很清楚:没收到邮件的你没被影响。

但问题是——你知道自己没收到邮件吗?如果你团队里有 3 个开发者用了 Console,其中 1 个收到了邮件但没告诉另外 2 个,那其他 2 个人的 key 是不是也在受影响名单里?

图 1:OpenCode 事件时间线 + 4 个关键数字锚点

顺手记一个数字:24 小时窗口,从 10-16 夜到 10-17 早邮件通知。在这 24 小时里,被盗的 key 每多跑一分钟,就是多烧一分钟你的钱。

PART 03 · THE LABEL · 「蒸馏攻击」是解释还是甩锅

这里有个挺有意思的争议。

OpenCode 官方用的词是 large-scale distillation attack(大规模蒸馏攻击)。翻译成人话:攻击者拿了你的 key,跑到 OpenAI / Anthropic / Google 那儿跑大量查询,把顶级模型的输出当训练数据,训自己的模型。

听起来挺完整,但独立报道一查,问题就来了。

Cyera 的博文原话:「OpenCode 没有公开解释密钥泄露和蒸馏之间的因果关系。目前不清楚是攻击者一开始就想偷 key 去做蒸馏,还是先攻破系统才发现 key。」

IT Security News 更进一步:「这是凭证被盗(credential theft)。蒸馏只是攻击者可能的一种用法。」

一句话总结:「蒸馏」是攻击者可能干了什么,不是这次事件的核心事实。核心事实就是——密钥被偷了。给事件贴「蒸馏」的标签,某种程度上是把「谁在偷 key」这个更难回答的问题,用「key 被偷去干什么」这个问题绕开了。

有意思的是 Anthropic 在 2026-02 就公开披露过一波类似的蒸馏:24,000 个假账号,190M 次调用,据说是几家中国 AI 实验室干的。但那次是攻击者自己注册假账号,走正常风控;这次是拿真实开发者的 key,走的是「合法付费客户」的通道——风控根本看不到异常。

图 2:「蒸馏」标签争议——官方说法 vs 独立质疑 vs Anthropic 2026-02 先例

所以「蒸馏」这个说法,不是完全错,但是个事后标签,不是事件描述。区别挺重要:如果这是单纯的凭证被盗,你的防御动作是「轮换 key」;如果这是有组织的蒸馏攻击,你需要理解攻击者的长期目标——不是转卖,是训练。

PART 04 · TRIAGE · 3 家大厂的三种处理方式

3 家模型厂商的反应,其实分了三种路子:

Anthropic 和 Google:直接封 key。官方认定这批 key 可能已经泄露,就直接把它标记为禁用。你原来那个 key 从此不能用了,去控制台下一个新的就行。

OpenAI:跟 OpenCode 合作退款。攻击期间的消耗,OpenAI 说会跟 OpenCode 一起处理,把不合理的费用退回去。

OpenCode 自己:宣布「退款进行中」。具体退多少、什么时候退、怎么退,官方没给细节。

三家反应的分化,其实挺能说明问题——Anthropic/Google 是防御姿态,宁可误封也不让泄露 key 继续用;OpenAI 是补救姿态,先承认问题存在,走商务谈判退款。两条路都能站得住,但结果不一样:封 key 的用户立刻断掉攻击链,代价是业务中断;退款的用户能继续用,但攻击期间已经烧掉的钱不一定全退。

图 3:3 家大厂反应分化——封 key / 合作退款 / 官方退款

顺便说一句,OpenCode 官方通报里没说这次事件的攻击者是谁。CyPro 的原话:「没有任何威胁行为者被公开指认或归因。」

至于「1.4% 换算下来是多少个用户」,OpenCode 也没给。只给百分比。

PART 05 · IRONIC · 用 AI 打 AI 被反噬

这篇事件最讽刺的地方在防守端。

Dax Raad 说,攻击者连续 48 小时不间断尝试入侵 OpenCode 的系统。团队为了扛住这波,用 AI 防御 agent 7×24 小时轮班分析恶意代码。

然后 AI 拒绝继续工作了。

因为 AI 分析到某些恶意 payload 时,触发了安全过滤——「这段代码看起来有问题,我不能帮你分析。」Dax Raad 的原话是「a bit frustrating」(有点烦),我觉得这是精确的谦辞。

攻击者没有这层限制。

后来 OpenCode 申请了 OpenAI 的 Daybreak Blue 项目——这个项目的定位是给经过审核的安全团队用,模型「不太会在防御场景下拒绝」。Raad 说拿到之后调查效率明显提升。

同一件事在 Hugging Face 那边也发生过——2026-07 他们分析一起 AI agent 入侵事件时,被同样的安全过滤拦下。David Sacks(白宫 PCAST 联席主席)公开评论过两次都说过一句话:这些 guardrails「backfired」(反噬了)。

一句话:攻击者没有良心,防御者要用良心。而"良心"恰好是安全过滤要保护的东西。

PART 06 · CHEAT SHEET · 你自己该做什么

我知道你已经在想:「我在不在那 1.4% 里?」——先给答案:

CASE 01|自查 + 长期防护

需求:普通开发者,不确定自己在不在受影响名单里,想搞清楚然后不再被同一波坑。

方案:

  1. 先看邮件:登录 Console 用哪个邮箱,检查有没有 OpenCode 10-17 或之后的通知邮件
  2. 直接去 3 家厂商控制台吊销:不要去 OpenCode 里面删 key(删了也没用,攻击者早就抄走了),直接去 platform.openai.com / console.anthropic.com / Google AI Studio 后台撤销旧 key、生成新 key
  3. 查 10-16 后的账单:3 家厂商后台的 usage 页,看有没有你不认识的调用、异常时段、不熟悉的模型(比如你从来不用 OpenAI o 系列,突然出现大量 o1 调用,就是问题)
  4. 全工具盘 key:这次中招的不只是 OpenCode,任何你在第三方工具里存过 API key 的地方(Cursor / Windsurf / Cline / 各种 IDE 插件 / 自己写的 MCP server),都建议顺手盘一遍
  5. 长期:给每个工具单独配 key + 硬限额:别再用一把万能 key 打天下;每家厂商后台都支持「按项目/工具」的 key scope 和 spend limit,用起来。这次的教训就是——Console 里的预算只覆盖走 OpenCode gateway 的调用,key 被抄走直接在厂商 API 上跑,Console 的预算拦不住

输出:

图 4:CASE 自查清单——本地 vs 云端分水岭 + 5 步动作

顺便提一句:这次事件发生同一天(10-16/17),OpenCode 还把 GLM-5.3-Flash 免费给用户用了。免费是好事,但免费的服务,往往意味着密钥管理的边界也没那么硬。

SUMMARY · 一句话结论

免费/便利的代价,藏在聚合器里。

OpenCode 让你「一个账号接 3 家」,代价是「一个漏洞 = 3 家账单同时爆」。官方给的「蒸馏攻击」标签,是个事后描述,不是事件事实——核心事实就是:你的 API key 被偷了,账单被刷了,钱是你的。

一句话推荐:把 key 从任何"云端工作区"里挪出来,或者至少给每个工具单独配 key + 硬限额。这次的 $1700 账单,本来可以用 $20 硬限额挡掉。

适合:任何在第三方工具里存过 OpenAI / Anthropic / Google API key 的开发者

参考:OpenCode 官方 X 通报(2026-10-17)· CyPro《OpenCode Breach May Have Exposed API Keys》· Cyera《OpenCode Breach: What Happened》· IT Security News《OpenCode Breach Exposes User API Keys》· OBiGuard《OpenCode Breach: AI Provider API Keys Exposed》· TokenFeed《Hackers Stole API Keys From OpenCode》· AI Parabellum《OpenCode Breach Charges and Refunds》· Anthropic 2026-02 蒸馏披露 · 新浪财经《OpenCode 爆雷》