研究人员发现 ChatGPT 存在高危漏洞,可将私人对话暴露给攻击者
原创
ZM
ZM
暗镜
2026年11月9日 08:00
北京
去阅读
研究人员发现了一系列漏洞,这些漏洞可以将普通的公共 ChatGPT 分享链接变成攻击者控制的 JavaScript,该 JavaScript 在受害者的登录会话中运行。OpenAI 于 10 月 26 日修复了该问题,并将其归类为 P1 级。Parameter 研究人员的完整技术文档显示,该漏洞获得了 5000 美元的赏金。攻击者利用 ChatGPT 的分享功能发布了一段精心构造的对话,受害者只需点击链接即可受到影响。尽管 ChatGPT 的 HTML 预览功能会在另一个网址的受限框架中运行不受信任的代码,但这种隔离措施是有效的。然而,漏洞却存在于主页的另一个组件中。
对话中包含一个交互式图表,该图表加载了 MathLive 数学库。MathLive 在其屏幕键盘的主页面上安装了一个 postMessage 监听器。此监听器接受来自任何来源的更新设置消息,但未能检查消息是由哪个窗口发送的。因此,该消息可能会将键盘布局替换为原始 HTML。预览代码发送了两条消息:第一条消息提供页面布局,第二条消息指示 MathLive 显示键盘。然后,MathLive 使用 innerHTML 将攻击者的标记插入到页面中。createHTML 辅助函数将字符串标记为可信,但并未对其进行清理。为了执行脚本,研究人员注入了一个未沙盒化的 srcdoc iframe,该 iframe 继承了 chatgpt.com 的身份,并可以与父页面交互。
ChatGPT 的内容安全策略 (CSP)阻止了内联脚本,但允许来自 YouTube 的脚本。YouTube 的 oEmbed 端点在其响应中会显示一个 JSONP 回调参数,然后返回验证错误。在回调函数末尾添加 ;void 会使附加的错误对象失效,从而允许浏览器将攻击者的代码作为受信任的脚本执行。注入的代码从页面获取了会话令牌和账户 ID。然后,它通过 /backend-api/conversations 端点列出了最近的对话,并检索了一个攻击者无权访问的私人聊天记录。一个图像请求将其中一小部分数据发送到了研究人员控制的服务器。原则上,这段代码可以执行受害者可以执行的任何操作。
在最稳定的测试中,只需点击打开链接即可,有效载荷会在大约 4.5 秒后执行。OpenAI 在 10 月 21 日重现该漏洞后,将其严重程度从 P2 提升至 P1。到 10 月 26 日,两个 Web 前端均已拒绝跨框架的 MathLive 消息。攻击者已经滥用合法的 ChatGPT 分享链接来传播 ClickFix 诱饵,这些诱饵最终会指向 NetSupport 远程访问木马 (RAT)。像这样的漏洞使得分享链接成为更具吸引力的传播途径。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论