你点开朋友发来的 ChatGPT 分享链接,通常只想看一段公开对话。但安全研究者展示了一种更危险的可能:链接中的一张图表和一个小网页相互配合,可能越过预览区的隔离墙,读取你从未分享的私聊,甚至以你的身份调用账户功能。
这不是一次已被证实的大规模入侵。现有材料描述的是 Parameter Labs 构造并受控演示的漏洞利用链。Simon Willison 对其披露作了转述;OpenAI 已修复漏洞,并支付了 5,000 美元漏洞奖金。由于缺少 Parameter Labs 原始披露、PoC、OpenAI 公告及赏金记录供独立核对,以下技术细节和效果均属于单一信源报告。
危险藏在“可运行的回答”里
ChatGPT 的 Artifact,也就是材料中所称的 HTML preview,是模型生成后可以直接运行、点击和交互的小网页。它比纯文本回答更有用,但也带来一个根本问题:产品必须在用户眼前执行尚未被信任的代码。
常见防线是 sandboxed iframe。iframe 可以理解成网页里嵌入的另一张网页;sandbox 属性则像一道隔离门,限制里面的脚本接触主站、弹窗或改变页面。对 ChatGPT 来说,这道门隔开的不只是两个页面,还包括生成内容与用户账户权限。
据 Willison 转述,Parameter Labs 找到的不是一个能直接接管账户的单点漏洞,而是一串可以首尾相接的小缺口。
第一环来自 ChatGPT 图表功能使用的 MathLive JavaScript 库。MathLive 带有虚拟键盘,沙箱中的 iframe 可以通过 postMessage() 向父页面发送消息,触发相关处理逻辑。postMessage() 本来是不同网页框架之间的通信机制,问题在于,接收消息的代码使用了 innerHTML——一种把字符串直接写成网页结构的方式——同时没有阻止 HTML preview 等其他沙箱 frame 调用它。
于是,不受信任的预览内容可以要求父页面插入自定义 HTML。innerHTML 本身不会直接执行其中的 <script>,但研究者称,它可以插入一个新的 iframe,而且这个 iframe 不带 sandbox 限制。原本关在隔离区里的内容,相当于让主页面替自己开了一扇没有门禁的新窗口。
一道防线,为什么又被绕过去?
逃出原有沙箱还不够。ChatGPT 页面有 CSP,也就是内容安全策略。它会规定页面可以从哪里加载脚本,并禁止内联脚本,用来压低 XSS 风险。XSS,或“跨站脚本”,指攻击者让恶意 JavaScript 在受信任网站的页面环境中运行。
材料称,ChatGPT 当时只允许少数域提供脚本,其中包括 YouTube。攻击链利用 YouTube 的 oEmbed endpoint,把 JavaScript 反射回来并执行。这样,代码便不再运行于受限预览区,而是在 ChatGPT 页面上下文中运行。
一旦走到这一步,攻击者就可能调用已登录用户可访问的 API,取得私有数据,再借助图片引用把数据发送出去。最终载体可以是一条 ChatGPT share URL:已登录用户访问后,私有数据可能被窃取,账户也可能被代为执行操作。这里的“账户劫持”不等于窃取密码;攻击者只要借用现成登录会话和身份权限,就可能读取会话或调用账户功能。
一条链接是怎样拼完整的
据 Parameter Labs 自述,研究者最初并没有直接做出“一条链接接管账户”的版本。早期方案依赖其控制的 ChatGPT App,不适合远程投递。改用原生 HTML 附件后,他们又发现,分享会话无法保留负责唤醒 MathLive 的图表。
最终方案把一张真实图表和一个恶意 HTML preview 放进同一段公开会话:图表让主页面加载数学组件,预览区再从沙箱中向组件传递消息。这样,分享链接才保存住整条利用链。
研究者称,他们随后用两个自有账户完成受控演示:从模拟受害账户列出会话,读取一段从未分享过的私聊,并把少量内容传到自己的服务器。他们还表示,没有发现真实用户遭到利用。现有材料也没有提供受害规模或漏洞被野外利用的证据。
真正值得警惕的是“组件之间”
这条攻击链的启示,不只是某个函数不该使用 innerHTML。每一层防线单独看都存在限制:预览内容有沙箱,页面有 CSP,脚本来源也有白名单。但图表组件允许跨 frame 传话,消息处理器能改写父页面,新增 iframe 又没有沙箱,最后白名单中的域还能帮助执行代码。多个看似局部的问题,最终跨过了从“展示模型生成内容”到“使用用户账户权限”的边界。
据 Parameter Labs 和 MathLive 更新日志,漏洞于 2026 年 10 月 18 日通过 OpenAI 的 Bugcrowd 计划上报,先按 P2 受理;OpenAI 在 10 月 21 日复现账户接管后将其升至最高优先级 P1,相关两套网页前端到 10 月 26 日完成修复,奖金合计 5,000 美元。MathLive 0.111.2 随后把虚拟键盘等消息改为默认只接受同源发送者,但更新日志没有提及 ChatGPT、OpenAI 或 Parameter,也没有对应 CVE,因此公开材料无法确认两件事存在直接因果关系。
局限与未知
- 全部关键论断来自同一条披露链,缺少原始 PoC、官方公告和独立复现,技术细节尚不能交叉验证。
- “Canvas”与“HTML previews”的关系在材料中措辞含糊,不能据此认定 OpenAI 已正式更名。
- 研究者称未发现真实受害者;这是一条可构造并演示的账户劫持链,不等于已经发生大规模账户接管。