ChatGPT曝高危漏洞 恶意分享链接可偷私密聊天
安全公司Parameter近日披露ChatGPT的一个高危漏洞:一条看起来再普通不过的分享链接,就能让攻击者的代码在受害者的已登录会话中运行,读取从未分享给任何人的私密对话。OpenAI复现攻击后把严重等级从P2上调至最高的P1,并已在服务端完成修复,用户无需安装更新或调整设置。
陷阱的载体是一条通过公开链接分享的普通ChatGPT对话,传播方式与正常分享完全一致:邮件、聊天消息、客服工单或社交帖子都可以发送。受害者不需要安装任何软件、加入工作区,也不必通过攻击者的链接登录。在攻击稳定性最高的版本中,用户打开链接后只需点击一次Preview按钮即可触发;在后续优化的版本里,页面会自动触发预览,打开链接即完成整个攻击流程。
漏洞的根源是三个设计缺陷的叠加。ChatGPT的Preview功能会把对话中的HTML块渲染成小型网页,因为可能承载任意代码,这些页面被放进独立域名下的受限帧里隔离,沙箱本身是有效的。但同一条对话中的交互式图表需要在主页面加载名为MathLive的数学库,它加载后会在主页面留下一个接收屏幕键盘消息的监听器,既不校验消息来自哪个帧,又允许消息携带原始HTML。于是Preview帧得以穿过隔离边界,把攻击者构造的HTML注入受信任的主页面,创建一个被浏览器识别为属于chatgpt.com的新帧,随后从YouTube加载的脚本——CSP恰好允许的来源——就在这个帧内运行攻击者代码。
得手后,攻击者代码拥有与正版ChatGPT网站完全相同的访问权限,直接调用ChatGPT自身的已登录API,而不只是抓取屏幕内容:它可以列出受害者的最近对话,打开从未分享的私人聊天窗口并把内容发往外部服务器。「从本质上讲,我们可以代表受害者的ChatGPT账号执行任意操作」,研究人员在报告中写道。此次验证在独立测试账号之间完成,未针对真实用户,目前也没有发现该漏洞被在野利用。
时间线上,Parameter于10月18日通过OpenAI漏洞赏金计划上报,OpenAI三天后复现代码执行与私密聊天窃取的完整链路并把等级升至P1,10月22日修复第一个网页前端,26日两个前端均已拦截攻击所依赖的恶意消息,前后历时八天,并发放了5000美元赏金。10月28日,Parameter发布了完整的漏洞分析报告。
报告特别强调,内容安全策略只是兜底防线而非真正的隔离屏障:即便单独封禁YouTube脚本来源,不可信的预览帧依然能向主页面推送恶意HTML。真正的教训在于嵌入第三方组件时必须审计其默认配置——一个不校验来源的postMessage监听器,就像一把页面上任何帧都能击发的枪,而击发它的帧,可能恰恰是产品自己为别的功能创建的。
编译自 Parameter Blog,原标题:"Do the Math: How We Took Over ChatGPT Accounts"