Parameter Labs:ChatGPT漏洞可窃取数据,OpenAI赏金仅5000美元
Parameter Labs 描述了他们在 ChatGPT 的 artifacts 模式(OpenAI 曾称之为 "Canvas",最新修订版似叫 HTML previews)实现中发现的一个漏洞。该模式下,交互式自定义 HTML 应用显示在沙箱化 iframe 中。
确保这些 HTML 被严格沙箱化至关重要,以防不可信代码与 OpenAI API 交互并访问私人数据。
Parameter 发现了一条相当复杂的攻击链。OpenAI 在其图形支持中使用了 MathLive JavaScript 库,该库自带虚拟键盘,可从沙箱化 iframe 中通过 postMessage() 在父页面触发。
那段消息接收代码使用了 innerHTML,因此任何发送消息者都可向父页面注入自定义 HTML——且没有任何机制阻止其他沙箱化框架(包括 HTML preview 框架)调用该方法。
这意味着 iframe 中的不可信代码可插入 HTML;虽然 innerHTML 不会直接执行脚本元素,但可用来注入一个不受沙箱限制的新 iframe。
OpenAI 的 CSP 规则完全阻止内联脚本,只允许从少数域名加载脚本,其中之一是 YouTube——而 YouTube 的 oEmbed 端点可用来反射 JavaScript 并使其执行。
一旦攻击者在 ChatGPT 上获得 JavaScript 执行能力,从 API 获取私人用户数据并通过图片引用外传便轻而易举。
最终结果是:你可创建一个 ChatGPT 分享链接,当其他已登录用户访问时,即可窃取其私人数据或代其执行操作。
OpenAI 封堵了漏洞并支付 5,000 美元漏洞赏金。在我看来,对如此严重的漏洞,这有点太便宜了。