AIToday
AI Safety & AlignmentSimon Willison's WeblogPublished: Nov 1, 2026, 10:01 JST

Parameter Labs chains MathLive, YouTube oEmbed to hijack ChatGPT accounts

Send on LINE

3 Key Points

  1. What happened

    Parameter Labs found that ChatGPT's HTML preview sandbox could be escaped via a MathLive keyboard postMessage flaw and a YouTube oEmbed script-loading trick, letting a shared link exfiltrate a signed-in viewer's private data. OpenAI closed the hole and paid a $5,000 bug bounty.

  2. Why it matters

    The chain let untrusted code in one user's preview run inside ChatGPT itself, so simply opening a shared link could expose private data or let actions be taken on the viewer's behalf.

WHO IT HITSThis lands on ChatGPT users who open shared links and on security teams assessing AI chat tools that render interactive HTML, since trust in the preview sandbox is central to how such features are adopted.

Not sure about something? Ask the AI

Questions and answers are published on this page.

Summaries like this, every morning.

Context & Analysis

The vulnerability sits in the artifacts pattern — the feature OpenAI once called Canvas and now presents as HTML previews — where interactive custom HTML apps run in a sandboxed iframe. Keeping that HTML tightly sandboxed is meant to stop untrusted code from reaching OpenAI APIs or private data. Parameter Labs' chain shows how a supporting library can widen that boundary: MathLive, used for graph support, includes a virtual keyboard that the parent page listens for via postMessage(), and the receiving code used innerHTML without preventing other sandboxed frames, including preview frames, from calling it.

From there, the attack bypassed OpenAI's CSP rules, which blocked inline scripts and allowed script loading from only a handful of domains, one of which was YouTube. The YouTube oEmbed endpoint could reflect JavaScript back in a way that executed it. Once JavaScript ran, fetching private user data from APIs and exfiltrating it via an image reference was trivial, according to the write-up.

The practical result was a share URL that could act against another signed-in user. OpenAI closed the hole and paid a $5,000 bug bounty, which Simon Willison called a bit cheap for a vulnerability this serious; that assessment is his opinion, not a stated policy of OpenAI.

FAQ
What was the exact attack chain Parameter Labs found?
It used the MathLive JavaScript library's virtual keyboard, which could be triggered from a sandboxed iframe via postMessage(); the receiving code used innerHTML, allowing injection of an unsandboxed iframe. CSP rules were bypassed via the YouTube oEmbed endpoint, which reflected JavaScript that executed in ChatGPT.
How did OpenAI respond to the report?
OpenAI closed the hole and paid out a $5,000 bug bounty.
What could an attacker do with the exploit?
Create a ChatGPT share URL that, when visited by another signed-in user, could exfiltrate their private data or take actions on their behalf.
Simon Willison's WeblogRead Original Article
Send on LINE

AI news that matters for your work, delivered every morning.

Pick your industry and the AI tools you use, and get news related to your work every day.

Free · 30 seconds with Google · unsubscribe anytimeWhat is AIToday? →

Ask AI

Ask AI anything about this article. The AI reads this article, earlier AIToday articles, and Wikipedia, and cites its sources. Q&As are published on this page for other readers too.

Questions and answers are published on this page.

Related Articles

Next articleOpenAI Python SDK 3.42.0 adds agent context compaction