跳到正文
Simon Willison·· 3 小时前AI 评分58

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

How We Took Over ChatGPT Accounts

AI 导读

Parameter Labs 披露了一条针对 ChatGPT HTML 预览(原 Canvas)沙箱机制的漏洞链,攻击者可借此窃取已登录用户的私有数据或代其执行操作。

深度导读
Parameter Labs 披露了一条针对 ChatGPT 的漏洞链,问题出在 ChatGPT 对 artifacts 模式的实现上。OpenAI 此前称这一模式为 Canvas,最新版本叫 HTML 预览,交互式自定义 HTML 应用运行在沙箱 iframe 中,本应严格隔离,避免不可信代码接触 OpenAI API 和私有数据。 攻击链较为复杂。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 分享链接,其他已登录用户访问后,其私有数据可能被窃取,或账号被代其执行操作。OpenAI 已封堵该漏洞并支付 5000 美元漏洞赏金,Simon Willison 认为对如此严重的漏洞来说这一金额偏低。

来源:Simon Willison · simonwillison.net