Parameter Labs 的研究人员发现了一个复杂的攻击链,能够绕过 ChatGPT 的安全边界并接管用户账号。该漏洞集中在“HTML 预览”功能上,该功能在沙箱化的 iframe 中显示交互式的自定义 HTML 应用。虽然这些框架旨在与主 ChatGPT 页面隔离,以防止访问私人数据和 API,但三个不同漏洞的结合使得预览中的不受信任代码能够“逃逸”出沙箱,并在父窗口中执行命令。

用于安全研究的修改后的 ChatGPT 公共分享页面截图。
研究人员利用修改后的公共分享页面来促进沙箱逃逸和账号接管。www.parameter.ai

这张图片展示了用于启动第一段所述攻击链的修改页面结构。

该攻击链的第一环涉及 MathLive JavaScript 库,这是 OpenAI 用于图形支持的库。该库在主 ChatGPT 页面上安装了一个监听器,用于处理其屏幕虚拟键盘的消息。由于该监听器未验证传入 `postMessage()` 调用时的来源,它会接受来自任何来源的命令,包括沙箱化的 HTML 预览。攻击者可以向此监听器发送消息,用自定义 HTML 更新键盘布局。当触发键盘时,主页面使用 `innerHTML` 来渲染此布局。由于 `innerHTML` 不直接执行脚本标签,研究人员使用了第二种技术:注入带有 `srcdoc` 属性的新 `<iframe`。这个新框架由主页面创建且没有任何沙箱限制,使其拥有与 `chatgpt.com` 相同的网络身份,并允许其访问父页面的数据。

最后的障碍是 ChatGPT 的内容安全策略(CSP),该策略阻止内联脚本,但允许来自少数域(包括 YouTube)的脚本。研究人员通过使用 YouTube 的 oEmbed 端点绕过了这一限制,该端点支持 JSONP 风格的回调。通过构建特定的回调,他们可以强制浏览器从受信任的域加载并执行任意 JavaScript。一旦研究人员在受害者的已验证会话中实现了 JavaScript 执行,他们就可以获取私人对话列表,检索非共享的私人聊天内容,并将这些数据外泄到外部服务器。OpenAI 在 2026 年 10 月 26 日修复了该漏洞,并为此次发现发放了 5,000 美元的漏洞赏金。虽然修复已得到确认,但报告中并未透露对 MathLive 集成或 CSP 规则所做的具体技术调整。

展示从会话中外泄私人对话数据的概念验证。
研究人员演示了私人对话数据可以从受害者的已验证会话中成功外泄。www.parameter.ai

这张图片提供了攻击最后阶段的视觉证明,即私人数据被发送到外部服务器。