ChatGPT share links ran attacker JavaScript inside the victim's signed-in session: OpenAI rates the account-takeover chain P1 and patches it
- Parameter's researchers turned a public ChatGPT share into attacker JavaScript running as chatgpt.com inside the victim's signed-in session; opening the link was the only action required, and OpenAI fixed it on October 26, 2026 as a P1.
- The chain needed two features that looked harmless alone: the conversation's graph loaded MathLive, whose top-level keyboard controller used an origin policy of
noneand accepted anupdate-settingmessage from any window, so the Preview frame replaced the virtual keyboard layout with attacker HTML. - MathLive joined that layout into an HTML string and assigned it to
innerHTML; the createHTML helper marked the string trusted instead of sanitizing it, and the injected iframe srcdoc carried no sandbox attribute, so the new frame inherited the chatgpt.com origin and could read the parent page. - ChatGPT's CSP blocked inline JavaScript but allowed scripts from YouTube, and the YouTube oEmbed JSONP endpoint placed the callback into the body of its own validation-error response, which loaded the payload anyway.
- The payload called ChatGPT's authenticated APIs as the victim: it enumerated the conversation list, read a private conversation that had never been shared with the attacker, and sent that content to an external server.
Hacker News opinions
My latest project just emails a magic link, and I'm trying not to hold any important data at all so there's nothing to lose when I eventually get hacked. Everyone in this thread turns up their nose, but every one of them is exposed.
If your company runs email security software that scans every link, it's not really the user's fault. The mail gets auto-confirmed the second it hits the inbox. We had to change our registration confirmation emails so they don't confirm on GET anymore.
This writeup is particularly bad. They probably made like $7,500 for the P1 at best, so spend a couple hours making the blog post readable.
Together with the remote file system access on ChatGPT desktop machines that have ever started a Work chat, this whole thing looks pretty bad.
The Work environment selector literally says it is available on any device and can access your computer. That labeling is clear, but it doesn't make the security issue any better.
Wasn't the agent swarm supposed to take care of those millions of lines of code? Complexity and bug surface grow with the size of the monolith, so you want to cut lines of code, not brag about them.
Microservices don't fix this either. You've just traded one hard problem for a distributed one.
I like Lines of Effective Code as the metric. If it's broken or too slow it isn't effective, so it gets refactored or scrapped.
$5,000 for an account-stealing exploit on a company that says it's worth a trillion dollars. That's the same rate I paid researchers when I managed the bug bounty program at a small startup.
$5k is a polite thanks-and-fuck-off rate. The next researcher who finds something like this just sells it to a broker instead of reporting it.
How you treat someone's first vulnerability report decides who buys their second one.
OpenAI acknowledging and fixing the bug is worth more in PR than any bounty, but a $100k payout would have made a headline and $5k requires people to already understand how bad this is.
I took over user accounts in Microsoft Copilot and they asked for a video, fixed it before I sent it, and never paid me a cent. So honestly, is $5k better or worse than that?
Another classic web security implementation failure, this is the kind of thing you learn in Security 101. Production scale is not production grade, I guess.