AREXOpen in interactive Feed

AREX Feed Article

Check Point 披露 ChatGPT Lockdown Mode 绕过漏洞:嵌套 iframe 借弹窗权限静默外传聊天记录,OpenAI 已于 9 月 18 日修复

November 5, 2026

2026 年 11 月 5 日, 公开发布研究员 Alexey Bukhteyev 的研究:ChatGPT 的 Lockdown Mode 可以被绕过。问题出在代码块 HTML 页面预览的沙箱实现上:嵌套的沙箱 iframe(内嵌框架)保留了 allow-popups 和 allow-popups-to-escape-sandbox 两个权限,攻击页面只要在沙箱内再嵌一层 iframe、调用未被改写的 contentWindow.open,就能弹出不受沙箱约束的窗口。借助这个窗口,攻击者可以静默外传整段聊天记录和已上传的文件、仿冒 ChatGPT 窗口实施钓鱼,并投递伪装成应用更新的恶意软件。

在基于 Electron 的 ChatGPT Classic 桌面端,攻击可以零点击触发:一场对话本身就足以把聊天记录发往攻击者的服务器,触发途径包括恶意提示词、恶意 GPT 和共享对话。Check Point 写明,负责任披露之后,OpenAI 已于 2026 年 9 月 18 日部署修复,从外层 HTML 预览沙箱 iframe 中移除了这两个权限,Check Point 复测确认原攻击手法不再有效。 在两个多小时后跟进报道,并引述 Check Point 研究主管 Eli Smadja 对机制的解释。

弹窗权限没被封死,真正的拦截只靠重定义的 window.open

2026 年 2 月,OpenAI 在 ChatGPT 代码块中加入 HTML 页面预览功能,模型生成的 HTML 可以直接在聊天界面里渲染。Check Point 指出,渲染用户控制的 HTML 和 JavaScript 天然带有几类直通数据外传的路径:外链图片把隐私数据拼进 URL、伪装成「ChatGPT 更新」的外链下载、用 target="_blank" 或 window.open 弹出任意外部页面,以及读取 chatgpt.com 的 cookies 和 localStorage(浏览器本地存储)。为此,ChatGPT 把渲染内容放进两层嵌套 iframe 组成的沙箱:页面触碰不到主应用的 cookies、localStorage 和界面状态,访问外部资源、加载远程图片、点击外链的动作都会被拦截并弹出用户确认框。

但 Check Point 在检查沙箱实现时发现,iframe 的 sandbox 属性里保留着 allow-popups 和 allow-popups-to-escape-sandbox 两个权限,弹窗本身并没有被沙箱封死。实际的拦截靠另一层机制:沙箱脚本重定义了 window.open(window.open: h=>{if(!h)return null;const{location:f}=r;return an(o,f,h),null}),把开窗请求转给审批流程,用户批准才会放行;页面试图打开空 URL 或 about:blank 时,函数直接返回 null,连提示都不显示。

而重定义只作用于沙箱页面自己的 window.open。Check Point 在沙箱页面内再创建一个 iframe,调用它的 contentWindow.open:这个新框架里的 open 函数没有被改写,弹窗于是真实弹出;又因为外层沙箱带有 allow-popups-to-escape-sandbox,弹窗中的内容不再受任何沙箱约束,攻击者可以在其中放置任意 HTML。

保留 ChatGPT 图标的窗口:假更新与强制登出

仿冒窗口是钓鱼与恶意软件投递的主要载体。攻击者需要先设计诱饵,骗用户点击生成的预览;弹窗一旦打开,它会保留 ChatGPT 应用的图标,标题栏却由攻击者控制,用户看到的仍像是 ChatGPT 应用的一部分。在 Check Point 的演示视频中,这样的窗口诱导用户下载伪装成应用更新的恶意软件。ChatGPT Classic 桌面端不允许自动下载文件,用户还需再点一次链接;换到浏览器里,自动下载不被阻止,受害者甚至不需要 ChatGPT 账号,攻击者只要分享一个含恶意页面的对话,共享对话里的任何一次点击都可能中招。

凭据窃取走另一条路。Check Point 发现,在 ChatGPT Classic 中还可以重载主应用窗口的内容、并以用户身份执行某些操作,例如强制把用户登出账号。攻击者据此伪造「请重新登录」的场景,把用户引到攻击者控制的页面完成认证,静默拿到凭据。

window.open 无需手势:桌面端的零点击从何而来

上述场景大多还需要用户先点一次。Check Point 测出,Electron 版 ChatGPT Classic 里的 window.open 无需用户手势即可调用,桌面端的零点击外传由此而来:研究页开头的第一段演示视频里,用户只是正常聊天,一个恶意 GPT 就把整段聊天历史发往第三方服务器,全程没有任何通知,Lockdown Mode 被绕过。

Lockdown Mode 切断的通道,被弹窗权限重新打开

Lockdown Mode 是 OpenAI 今年 6 月推出的可选高级安全设置,按 The Hacker News 的报道和 Check Point 的描述,它针对的是提示注入攻击的数据出口:开启后,实时网页访问只限缓存内容,互联网图片被禁止加载,Canvas 生成代码的网络请求被禁用,Deep Research、Agent Mode、实时连接器和文件下载全部关闭。Check Point 在研究中还提到,今年早些时候他们披露过 ChatGPT 代码执行运行时通过 DNS(域名系统)隧道静默外传数据的漏洞,那次修复部署后,OpenAI 推出了这一模式。

The Hacker News 把这次披露放进近几个月 ChatGPT 沙箱周边连续出现的缺口里。一周前,Parameter Labs 披露了一条路径:攻击者发布含恶意内容的共享对话并发送链接,即可绕过 ChatGPT 的沙箱与内容安全策略接管他人账号;报道引述安全研究员 Mukul Goyal 的说明,受害者打开共享链接后,载荷以 chatgpt.com 的身份运行,能访问其已认证的会话。更早的 9 月,Check Point 自己演示过一条跨账户隐蔽命令信道,攻击者可以借用受害者会话里的工具、数据和连接应用运行隐藏任务。

Check Point 复测确认手法失效,披露未给出 CVE 编号

时间线是:Check Point 向 OpenAI 负责任披露漏洞;9 月 18 日,OpenAI 通知修复已部署;Check Point 随后复测,确认文中的利用手法不再有效;11 月 5 日研究全文公开,距修复落地已过去近七周,披露中未给出 CVE 编号。The Hacker News 的报道确认了同一条修复时间线。

Smadja 对 The Hacker News 表示,Lockdown Mode 的本意是减少数据通过潜在恶意的出站请求离开对话的可能性,但另一个应用功能中的弱点提供了一条绕过该安全边界的替代路径。「这一发现引出一个更广泛的企业安全问题:AI 安全控制的强度,取决于其周围整个应用环境的强度。」

参考链接