
安全公司 Parameter Labs 10 月 28 日公开了一个 ChatGPT 漏洞的完整利用链:攻击者只需要发给你一个 ChatGPT 分享对话链接,你点开它,攻击者的代码就能以你的登录身份在 chatgpt.com 里运行——列出你的对话、读你从未分享过的私密对话、发到攻击者的服务器。最终版本里,受害者连一下都不用点,打开链接约 4.5 秒后代码就跑起来了,复现了三次,包括硬刷新之后。
攻击链是五个普通功能的组合:① 对话里的交互图表会加载数学库 MathLive,它在主页面装了一个虚拟键盘消息监听器;② 这个监听器不校验消息来源、接受任意网页发来的消息,而且消息里可以带 HTML;③ 沙箱里的 HTML 预览窗发一条伪造消息,让 MathLive 把攻击者的 HTML 渲染进真正的 ChatGPT 页面;④ 注入的 HTML 里放一个没有 sandbox 属性的 iframe,它会继承 chatgpt.com 的身份;⑤ 页面 CSP 拦住了内联脚本,但放行了 YouTube 嵌入,于是用 YouTube oEmbed 的回调参数把脚本带了进来。
时间线:10 月 13 日确认利用路径,10 月 16 日实现跨账号分享投递,10 月 18 日上报 OpenAI 漏洞赏金计划,10 月 21 日 OpenAI 复现并把严重性从 P2 升到 P1,10 月 22 日前端修复上线,10 月 23 日收紧 CSP,10 月 26 日确认两个 Web 前端都已修复,奖金 5000 美元。Parameter 称没有观察到真实世界里的滥用,OpenAI 也没有单独发安全公告。
普通用户不用做什么:漏洞在服务端和前端修好了,不用更新、不用改密码。但如果你自己做 Web 产品、而且用了 MathLive 这类库,值得检查一下自己的消息监听器:校验来源、校验窗口、别把跨窗口消息当 HTML 解析、动态创建的文档默认加沙箱。
相关阅读:一个月 9 家 AI 开发平台被盗密钥:被偷的模型密钥 30 分钟就被拿去刷推理;抓黑客的反被黑了:Chainalysis 遭 AI 代理入侵,百家银行交易所客户姓名邮箱外泄。
来源:Parameter @Parameter,原文:https://www.parameter.ai/labs/we-found-a-gap-at-openai


没有回复内容