←新闻详情

Simon Willison更新于 11月1日 07:49

Parameter Labs 披露可接管 ChatGPT 账号的漏洞利用链

How We Took Over ChatGPT Accounts

AI 导读

Parameter Labs 披露了一条针对 ChatGPT HTML 预览(原 Canvas)沙箱的攻击链,攻击者可构造分享链接,在其他已登录用户访问时窃取私有数据或代其执行操作。攻击从 MathLive 虚拟键盘的 postMessage 接收代码使用 innerHTML 入手,注入无沙箱限制的 iframe,再借 CSP 允许的 YouTube oEmbed 端点反射执行 JavaScript。OpenAI 已修复该漏洞并支付 5000 美元赏金。

推荐理由

精选AI 评分 65

原文完整还原了一条从沙箱 iframe 到读取用户私有数据的攻击链,可帮助理解 HTML 预览类功能的隔离边界。

主题

标签

正文

#smallhead

31st October 2026 - Link Blog

How We Took Over ChatGPT Accounts (via) Parameter Labs describe an exploit they found against ChatGPT's implementation of the artifacts pattern (OpenAI used to call this "Canvas" but it looks like the latest revision is called HTML previews), where interactive custom HTML apps are displayed in a sandboxed iframe.

It's important that HTML in these stays tightly sandboxed to avoid untrusted code interacting with OpenAI APIs and accessing private data.

Parameter found quite a complex attack chain. OpenAI use the MathLive JavaScript library as part of their graph support, and that library includes its own virtual keyboard, which can be triggered in the parent page via postMessage() from the sandboxed iframe.

That message receiving code uses innerHTML, so anything that sends a message can add custom HTML to the parent - and there was no mechanism to prevent other sandboxed frames, including HTML preview frames, from calling that method.

This meant untrusted code in an iframe could insert HTML, and while innerHTML doesn't directly execute script elements it could be used to inject a new iframe without sandbox restrictions.

OpenAI’s CSP rules blocked inline scripts entirely, and only allowed script loading from a handful of domains, but one of those was YouTube - and the YouTube oEmbed endpoint could be used to reflect JavaScript back in a way that executed it.

Once the attack had JavaScript execution on ChatGPT, it was trivial to fetch private user data from APIs and exfiltrate it via an image reference.

The end result: you could create a ChatGPT share URL which, when visited by another signed-in user, could exfiltrate their private data or take actions on their behalf.

OpenAI closed the hole and paid out a $5,000 bug bounty, which I think was a bit cheap for a vulnerability this serious.

Posted 31st October 2026 at 11:15 pm

Recent articles

The October inflection point for vibe game development - 28th October 2026

Battle Drones - a vibe coded RTS with audio-based multiplayer - 20th October 2026

Hello Python 3.15, goodbye 3.10, and now I can use 3.11 - 12th October 2026

A new feature for my blog, built using my voice - 9th October 2026

This is a link post by Simon Willison, posted on 31st October 2026.

Monthly briefing

来源

Simon Willison