产品Simon Willison·原文 2026年11月1日

Parameter Labs披露ChatGPT账户接管漏洞:分享链接可窃取登录用户数据,OpenAI已修复并支付5000美元赏金

Parameter Labs公布了一条利用HTML预览沙箱、MathLive虚拟键盘的postMessage接收逻辑、innerHTML注入、未受限iframe以及YouTube oEmbed反射执行JavaScript的攻击链。Simon Willison转述称,一个ChatGPT分享URL在另一名已登录用户访问时,可读取其私有数据并外传,或代其执行操作。OpenAI已修复漏洞,并支付5000美元漏洞赏金。

AI解读:Parameter Labs称,漏洞出在ChatGPT对artifacts模式的实现中。该功能曾叫Canvas,最新版本被称为HTML预览,交互式自定义HTML应用运行在沙箱iframe内。

攻击链的第一步是MathLive:OpenAI用它支持图表功能,该库自带虚拟键盘,可由沙箱iframe通过postMessage()触发父页面逻辑;父页面接收消息的代码使用innerHTML,且未阻止其他沙箱frame(包括HTML预览frame)调用。

不可信iframe因此能向父页面插入HTML;innerHTML虽不直接执行script,但可注入没有sandbox限制的新iframe。OpenAI的CSP禁止内联脚本并只允许少数域名加载脚本,但YouTube在允许列表中,其oEmbed端点可被用来反射JavaScript并执行。

取得JavaScript执行权限后,攻击者可调用API读取用户私有数据,并通过图片引用外传。最终效果是:创建一个ChatGPT分享URL,另一名已登录用户访问时,其数据可能被窃取,或账户被代操作。

Simon Willison称OpenAI已关闭该漏洞并支付5000美元赏金,他认为对如此严重的漏洞来说赏金偏低。上述攻击细节来自Parameter Labs的描述,Willison的帖子为转述与评论。

Parameter Labs公布了一条针对ChatGPT HTML预览功能的攻击链:恶意分享链接在另一名已登录用户打开时,可读取其私有数据并外传,或代其执行操作。Simon Willison在10月31日的链接博客中转述了该研究,并称OpenAI已修复漏洞、支付5000美元漏洞赏金。

HTML预览沙箱的边界被逐层绕开

Parameter Labs研究的对象是ChatGPT对artifacts模式的实现。Willison称OpenAI曾把该功能叫Canvas,最新版本称为HTML预览。交互式自定义HTML应用显示在沙箱iframe中,设计目的是让不可信代码无法接触OpenAI API和私有数据。

攻击从MathLive开始。OpenAI用这个JavaScript库支持图表功能,库自带虚拟键盘,可由沙箱iframe通过postMessage()在父页面触发。父页面接收消息的代码使用innerHTML,因此任何能发送该消息的frame都能向父页面添加自定义HTML,且当时没有机制阻止其他沙箱frame(包括HTML预览frame)调用这个方法。

这意味着不可信iframe可以插入HTML。innerHTML本身不直接执行script元素,但可用来注入一个没有sandbox限制的新iframe,从而继续扩大权限。

从注入HTML到执行JavaScript

OpenAI的CSP规则完全禁止内联脚本,只允许从少数域名加载脚本,YouTube是其中之一。Parameter Labs找到的路径是利用YouTube的oEmbed端点,把JavaScript反射回来并使其执行。

一旦在ChatGPT页面上取得JavaScript执行权限,Willison称读取私有用户数据并通过图片引用外传就变得很简单。最终的攻击形态是一个ChatGPT分享URL:另一名已登录用户访问该URL时,其私有数据可能被窃取,或攻击者可以代其执行操作。

修复、赏金与信息来源

Willison称OpenAI已经关闭了这个漏洞,并支付5000美元漏洞赏金。他同时评论说,对如此严重的漏洞而言这个金额偏低。

需要区分信息来源:攻击链的技术细节来自Parameter Labs的描述,Willison的帖子是转述和评论;OpenAI的修复与赏金金额目前来自Willison的转述,摘要中没有OpenAI的公开声明。

信息来源

Simon Willison原始来源