返回资讯
作者:meeka编辑部 · 编辑整理 · 来源发布于 2026/11/1 07:15:22

Parameter Labs 披露可接管 ChatGPT 账号的漏洞链

发生了什么

Simon Willison 在链接博客中转述了 Parameter Labs 披露的一条针对 ChatGPT 的漏洞链。问题出在 ChatGPT 的 artifacts 模式实现上,Willison 提到 OpenAI 此前称其为 Canvas,最新版本似乎叫 HTML previews,交互式自定义 HTML 应用运行在沙箱 iframe 中。

Parameter Labs 给出的攻击链较为复杂。OpenAI 在图支持中使用了 MathLive JavaScript 库,该库自带虚拟键盘,可从沙箱 iframe 通过 postMessage() 在父页面触发。接收消息的代码使用了 innerHTML,因此任何能发送消息的一方都可以向父页面添加自定义 HTML,而当时没有机制阻止其他沙箱 frame(包括 HTML 预览 frame)调用该方法。

这意味着 iframe 中的不可信代码可以插入 HTML。innerHTML 本身不会直接执行 script 元素,但可用于注入一个没有沙箱限制的新 iframe。OpenAI 的 CSP 规则完全阻止内联脚本,只允许从少数域名加载脚本,其中包含 YouTube,而 YouTube 的 oEmbed 端点可被用来反射回可执行的 JavaScript。

一旦在 ChatGPT 上获得 JavaScript 执行能力,从 API 读取用户私有数据并通过图片引用外传就变得简单。最终效果是:构造一个 ChatGPT 分享 URL,其他已登录用户访问后,其私有数据可能被外传,或在其身份下执行操作。OpenAI 已封堵该漏洞并支付 5000 美元漏洞赏金,Willison 认为对如此严重的漏洞来说这个金额偏低。

编辑部观察

这条披露的价值在于攻击链的构造方式,而非单一缺陷。沙箱隔离、postMessage 通信、innerHTML 渲染和 CSP 白名单四个环节单独看都有其合理性,组合起来却形成了从不可信 iframe 到父页面脚本执行的通路。其中 YouTube oEmbed 作为白名单域被用于反射脚本,说明 CSP 白名单的信任边界需要按端点粒度评估,而不只是按域名。

实践建议

对提供 HTML 预览、富交互组件或第三方嵌入能力的团队,可据此自查几点:接收 postMessage 的代码是否校验来源并避免 innerHTML;沙箱 frame 之间是否存在互相调用父页面方法的通道;CSP 白名单中的域名是否存在可反射脚本的端点。赏金金额与漏洞严重程度的匹配问题,也可作为内部漏洞响应分级时的讨论素材。

作者:meeka编辑部

信息来源:Simon Willison

原始标题:How We Took Over ChatGPT Accounts

编辑部依据所列来源整理事实;“编辑部观察”和“实践建议”为本站分析。