打开一条普通的 ChatGPT 公开分享链接,不需要安装插件、不需要复制代码,甚至不需要多点一下鼠标,大约 4.5 秒后,你已登录的账号会话就会在后台被攻击者接管,私人未公开的聊天记录随之被悄然打包传出。这是安全研究机构 Parameter AI 在 2026 年 10 月发现的真实攻击链。OpenAI 将该漏洞定级为高危的 P1 级别,于 10 月 26 日完成全量网页端修复,并向研究人员支付了 5000 美元漏洞赏金。
这起事件最值得警惕的地方在于,它与大模型自身的安全对齐毫无关系。无论是此前 Microsoft Copilot 遭遇的 EchoLeak 间接提示词注入,还是针对 Claude 的智能体越权操作,本质上都是把 AI 模型骗过了;而这一次,攻击者走的是最传统的 Web 应用底层暗门——当 AI 界面为了流畅展示图表与网页预览,把第三方开源库塞进主页面时,原本严密的浏览器沙箱被从内部撬开了一道缝。
两个无害功能的致命拼图:从数学键盘到主站越权
要理解这条攻击链,只需要看清 ChatGPT 网页端的两个日常功能是如何意外接通的。
ChatGPT 允许用户通过 HTML Preview(预览)功能把代码块渲染成可交互的小网页。为了防止恶意代码窃取用户信息,OpenAI 将预览窗口关进了不同域名的受限沙箱(iframe)里,正常情况下它根本读不到外部主页面的登录状态。问题出在对话里同时存在的另一项功能:交互式图表。
为了渲染数学公式与图表,ChatGPT 主页面加载了名为 MathLive 的第三方数学库。这个库在主页面注册了一个跨域消息监听器(postMessage),用来接收虚拟数学键盘的设置指令。按前端安全铁律,接收器必须核对发信人是谁;但 MathLive 的顶层控制器把来源校验设为了 none,不仅接受任何网页发来的消息,还允许直接把一段原始 HTML 代码写进虚拟键盘布局里。
于是,同一条对话里的两个合法功能拼成了完美跳板:图表在主页面装好了不设防的信箱,恶意 HTML 预览在沙箱里往信箱塞进了带有 srcdoc 属性的新框架。由于这个新框架是由 ChatGPT 主页面亲手创建的,而且没有加上沙箱限制,它直接继承了 chatgpt.com 的正统身份。
最后一道防线是浏览器的内容安全策略(CSP),它禁止直接运行内联脚本。但 ChatGPT 的白名单里放行了 YouTube 域名。研究人员利用 YouTube 的 oEmbed 接口在处理非法 JSONP 回调参数时,会先把攻击者传入的参数原样拼进返回脚本再报错的特性,借道 YouTube 成功在主站上下文里跑起了任意 JavaScript 代码。
代码一旦以 chatgpt.com 的身份跑起来,弹窗警告只是最微不足道的演示。攻击脚本直接读取了当前页面的登录凭证,调用后端的 /backend-api/conversations 接口,把受害者近期未公开的私人对话列表和具体内容全部拉取出来,再通过伪装成普通图片请求的方式传回外部服务器。
- 提醒.尽管研究机构将其称为账户接管,但严格来说这属于已验证会话的受限劫持,攻击者无法直接修改密码或永久夺取账号所有权;目前也没有发现该漏洞在野外被黑客实际滥用的报告,普通用户无需重置密码,刷新网页端即可应用补丁。
AI 变成复杂工作台后,前端供应链成了最软的肋骨
如果把这次事件放进过去两年生成式 AI 的安全演进史里,会看到一个明显的风向转移。
早期的 AI 安全攻防,焦点全在模型本身:如何用奇怪的提示词绕过护栏,或者像 Copilot EchoLeak 那样在文档里埋入隐藏指令,诱骗模型把用户数据吐出来。这类攻击的本质是模型分不清指令与数据。
但现在的 ChatGPT、Claude 早已不再是一个单纯的聊天框。为了留住企业与开发者,它们迅速膨胀成了集代码实时预览、交互式数学绘图、文档渲染于一体的迷你操作系统。
大模型守住了前门,第三方前端组件却把后窗向黑客敞开了。
在这次漏洞曝光前,如果你去查 MathLive 在 GitHub 上的公开安全公告(例如 GHSA-qwj6-q94f-8425),会发现社区关注的只是 LaTeX 文本溢出这类常规小毛病,没人意识到它那个不校验来源的 postMessage 监听器,一旦被放进拥有极高隐私价值的 ChatGPT 主页面,会变成一把刺穿沙箱的匕首。更棘手的是,OpenAI 在 10 月 18 日收到报告后,先是在 10 月 22 日修复了一个版本的 Web 前端,直到 10 月 26 日才彻底堵上第二个前端版本的漏洞——庞大的前端工程分支,让补丁的全面落地也花了整整 8 天。
对于正在把 AI 聊天框改造成全能工作台的研发团队来说,这笔 5000 美元的赏金买到了一个极其具体的教训。当你的产品允许大模型生成 HTML 并在客户端实时预览时,沙箱隔离只是第一步;主页面里引入的每一个第三方图表库、公式渲染器,以及 CSP 白名单里放行的每一个像 YouTube 这样的大型公共域名,都必须按最高安全等级重新审计。只要主页面还有一个组件愿意轻信跨域发来的消息,再昂贵的模型安全护栏也会在 4.5 秒内形同虚设。
