安全公司Parameter披露,一个普通的ChatGPT公开共享链接可在打开者的登录会话中运行攻击者代码,读取从未分享的私人对话并将内容外传。OpenAI已于2026年10月26日封堵该漏洞,将其定为最高优先级P1,并向研究团队支付5000美元奖励。
研究人员表示,受害者无需安装应用或粘贴代码,只需打开链接,代码约4.5秒后即开始运行。目前没有迹象表明该漏洞被用于真实用户,用户无需采取任何操作。
攻击能做到什么
问题出在代码运行的位置。一旦触发,代码就以 chatgpt.com 的身份在受害者浏览器中执行,拥有与真实网站相同的权限,而不是隔离窗口中受限的权限。它可以直接调用 ChatGPT 内部接口,也就是应用平时用来显示对话的那些 API。
在演示中,代码列出了用户最近的聊天记录,打开其中一段从未与攻击者共享的对话,并把其中一部分内容发送到研究人员控制的服务器。Parameter 表示,他们特意只外传了一个片段,以免测试过于侵入。但影响范围不止于此:拥有对网站的登录访问权后,用户在 ChatGPT 上能执行的任何操作都落入攻击范围,从读取已上传文件到修改账户。
受害者不需要安装应用、进入项目、粘贴代码或打开开发者工具,只需打开链接。最初的版本还需要再点一下预览按钮,后来研究人员把这一步改成自动触发,并在另一个账户里复现了三次,页面打开约 4.5 秒后代码就开始运行。

六步攻击链
单看每一步,用到的组件都不是漏洞。交互式图表、HTML 预览、两个浏览器窗口之间的消息传递,以及一条放行 YouTube 脚本的安全规则,都是正常功能。问题出在它们在同一页面里的组合。
第一步是诱饵:攻击者准备一段公开对话,里面有一张图表和一个 HTML 预览块,再用 ChatGPT 的常规链接分享出去,链接看起来和普通聊天没有区别。第二步是监听器:图表加载开源数学库 MathLive,加载时 ChatGPT 主页面会为 MathLive 的虚拟键盘装上一个消息接收器。第三步是越过隔离墙:HTML 预览运行在另一个地址上,与主页面隔离,读不到 ChatGPT 页面,却能通过浏览器的 postMessage 接口给它发消息,而 MathLive 收到消息不检查来源,因为其来源策略被设成了“无”。
第四步是注入 HTML:第一条消息把键盘换成攻击者自制的版本,里面塞满原始 HTML;第二条消息将其显示出来,这段 HTML 便进入了真实页面。名为 createHTML 的函数看似会清理内容,实际原样放行。第五步是代码执行:研究人员插入一个带 srcdoc 属性且不受任何限制的 iframe,它继承了 chatgpt.com 的身份;网站的安全规则拦住了内部脚本,却放行 YouTube 的脚本,YouTube 的 oEmbed 端点有一个响应把攻击者的代码当作 JavaScript 返回。
第六步是窃取:脚本此时已拥有网站权限,读取会话数据,调用需要登录的 API,列出对话,打开一段私人对话,再通过一个普通的图片请求把其中一部分发出去。

MathLive为何是薄弱环节
预览的隔离笼确实起了作用,预览里的代码读不到 ChatGPT 页面。出问题的是另一个组件:它早已在主页面里,却愿意听从任何人的指令。MathLive 是一个广泛使用的开源库,用于在网页上书写和显示数学公式,对话里的图表加载它是为了绘制符号键盘。
三个设计选择把一个细节变成了完整的攻击:MathLive 接受会改变状态的消息,却不核实是哪个窗口发来的;该消息的格式允许把原始 HTML 当作键盘的绘制内容传入;而这段 HTML 又能创建一个不受限制、继承 chatgpt.com 身份的文档。借 YouTube 响应绕过脚本规则,只是通往执行的最后一条捷径,问题的根子在更上游。
MathLive 项目这边已经调整。10 月底发布的 0.111 各版本在更新日志中把来源校验设为默认行为,禁止来自其他窗口的消息提供自定义键盘,并写明 createHTML 只是留给开发者的挂钩点,自身不会清理任何内容。在自家产品里集成该库的人应当升级。

修复时间线与赏金
Parameter 讲述的时间线很紧凑。10 月 13 日,研究人员在 ChatGPT 生产代码上确认了从 MathLive 到 HTML 的这条通路;10 月 18 日向 OpenAI 的漏洞赏金计划提交报告;10 月 21 日 OpenAI 复现了问题,把严重程度从 P2 上调到 P1;10 月 22 日至 26 日,公司修复了 ChatGPT 网页前端的两个版本,它们现在会拒绝实验中用到的 MathLive 消息,此案以总计 5000 美元奖励结案。
OpenAI 的赏金计划由 Bugcrowd 运营,对最严重的发现最高奖励 10 万美元,这一数字在 2025 年 3 月上调。此案的 5000 美元,说明大厂如何衡量实际风险,毕竟攻击仍需要说服受害者点开一条精心准备的链接。
这次漏洞与近期所见的其他漏洞不同。它不像此前暴露 /etc/passwd 的文件下载旧漏洞,也不同于经由连接器和外挂工具的攻击。这里的访问直接来自人人信任的网站内部运行的 JavaScript。它与 ChatGPT 直到 2025 年 3 月显示内嵌 SVG、从而敞开 HTML 注入大门时被利用的注入类型相同,只是走得远得多。

用户是否受影响
就这个具体漏洞而言,用户是安全的。修复自 2026 年 10 月 26 日起在两个版本的网站上生效,用户无需任何操作。Parameter 在实验室里演示了攻击,没有迹象表明它被用于真实用户。
不过实用的教训仍在:看似无害的链接可能并不无害,即使它指向你信任的域名。对话分享方便,所以流行,恰恰是这份方便让它成了绝佳载体。共享聊天过去已经惹过麻烦,有的是内容流到了不该去的地方,比如被 Google 收录的 Claude 聊天,也有借 ClickFix 手法安装木马的虚假 GPT。打开收到的链接之前,老规矩依然管用:看清它从哪里来。
针对常见疑问,研究人员给出的说明是:攻击利用的是受害者浏览器里已打开的会话,并不窃取密码,改密码拦不住这条攻击链,但给 OpenAI 账户开启双重验证始终是好习惯。目前也没有迹象表明 Gemini 或 Claude 等其他聊天机器人存在同样问题;该技术利用的是一个通用模式,即浏览器窗口之间的消息传递,加上一个不检查发送者的组件,理论上涉及任何含类似组件的网页应用,具体取决于各服务如何隔离自己的预览。
要点
- 漏洞由安全公司Parameter发现,研究署名Mukul Goyal
- 攻击者只需诱导受害者打开一条共享链接
- 代码以chatgpt.com身份运行,可列出并读取私人对话
- OpenAI于10月26日修复,定为P1并支付5000美元
- MathLive已在新版本中默认校验消息来源

正在读取登录状态…
暂无讨论,说说你的看法吧