ChatGPT 沙箱漏洞曝光 可劫持账户数据
安全团队 Parameter Labs 披露了 ChatGPT“Artifacts”功能中的严重沙箱逃逸漏洞。攻击者利用 MathLive 库的 postMessage 机制与 innerHTML 注入缺陷,可从受限 iframe 中执行恶意代码并窃取用户数据。该事件凸显了 AI 应用中前端隔离策略的重要性。
报道正文
Parameter Labs 披露了他们针对 ChatGPT 的 artifacts 模式实现所发现的一个漏洞(OpenAI 曾将此功能称为“Canvas”,但最新修订版似乎已更名为 HTML previews),该模式在一个沙箱化的 iframe 中显示交互式自定义 HTML 应用。
确保这些 HTML 内容处于严格沙箱环境中至关重要,以防止不受信任的代码与 OpenAI API 交互或访问私有数据。
Parameter 团队发现了一条相当复杂的攻击链。OpenAI 在其图表支持功能中使用了 MathLive JavaScript 库,而该库包含 其自带的虚拟键盘,可以通过来自沙箱化 iframe 的 postMessage() 在父页面中触发。
接收消息的代码使用了 innerHTML,因此任何发送消息的一方都可以向父页面添加自定义 HTML——而且当时没有机制阻止其他沙箱化框架(包括 HTML preview 框架)调用该方法。
这意味着 iframe 中的不受信任代码可以插入 HTML。虽然 innerHTML 不会直接执行 script 元素,但它可用于注入一个 没有 沙箱限制的新 iframe。
OpenAI 的内容安全策略(CSP)规则完全禁止了内联脚本,并且仅允许从少数几个域名加载脚本,但其中之一是 YouTube——而 YouTube 的 oEmbed 端点可以被利用来反射 JavaScript,从而使其得以执行。
一旦攻击者在 ChatGPT 上获得了 JavaScript 执行权限,就可以轻易地从 API 获取用户私有数据,并通过图像引用将其外泄。
最终结果:你可以创建一个 ChatGPT 分享链接,当另一个已登录用户访问该链接时,即可窃取其私有数据或代表其执行操作。
OpenAI 已修复此漏洞并支付了 5,000 美元的漏洞赏金,我认为对于如此严重的漏洞而言,这个金额略显偏低。
来源:Hacker News
标签:iframes, javascript, sandboxing, security, xss, openai, chatgpt, content-security-policy