Heidi Labs
Simon WillisonAI 权威大佬文章约 2 分钟776 字

我们是如何接管 ChatGPT 账户的

2026 年 10 月 31 日

链接博客

我们是如何接管 ChatGPT 账户的(via)—— Parameter Labs 描述了他们发现的一个漏洞利用,针对的是 ChatGPT 对工件(artifacts)模式的实现(OpenAI 过去称之为「Canvas」,但看起来最新版本叫 HTML 预览),其中可交互的自定义 HTML 应用显示在一个沙箱化的 iframe 中。

确保这些 HTML 保持在严格沙箱中非常重要,这样才能避免不可信代码与 OpenAI 的 API 交互并访问私有数据。

Parameter 发现了一条相当复杂的攻击链。OpenAI 使用 MathLive JavaScript 库作为其图表支持的一部分,该库自带虚拟键盘,可以从沙箱化的 iframe 通过 postMessage() 在父页面中触发。

那段接收消息的代码使用了 innerHTML,因此任何发送消息的东西都能向父页面添加自定义 HTML——而且没有任何机制阻止其他沙箱化框架(包括 HTML 预览框架)调用该方法。

这意味着 iframe 中的不可信代码可以插入 HTML;虽然 innerHTML 不会直接执行 script 元素,却可以被用来注入一个不受沙箱限制的新 iframe。

OpenAI 的 CSP 规则完全阻止了内联脚本,并且只允许从少数几个域加载脚本,但其中之一是 YouTube——而 YouTube 的 oEmbed 端点可以被用来把 JavaScript 反射回来并执行。

一旦攻击者在 ChatGPT 上获得了 JavaScript 执行能力,从 API 获取用户私有数据并通过图片引用外泄就变得轻而易举。

最终结果:你可以创建一个 ChatGPT 分享 URL,当另一位已登录用户访问它时,就能外泄其私有数据,或代表其采取行动。

OpenAI 封堵了这个漏洞,并支付了 5,000 美元漏洞赏金。我认为对于如此严重的漏洞来说,这个金额有点少。

发布于 2026 年 10 月 31 日 晚上 11:15