The researchers embedded a payload in a public share and combined an HTML Preview interaction with MathLive messaging behavior. Their controlled chain crossed the intended origin boundary and gained access to authenticated conversation APIs that should not have been available to a shared document. The report states OpenAI fixed the vulnerability on October…
Inspect the ClaimsCase · DiggingBeagle record
A shared ChatGPT conversation escaped Preview isolation and read private chats
Parameter reports a demonstrated attack in which opening an attacker-controlled shared ChatGPT conversation led to script execution in the signed-in chatgpt.com origin and allowed the researchers to retrieve an unrelated private conversation.
Researcher-operated proof of concept, not independently observed mass compromise; the vendor fix is reported by the researcher, not re-tested in this session.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Evidence
- Grade B
- Remediation
- fixed reported
- AI role
- AGAINST AI
Basis and provenance
Parameter describes a controlled chain from public shared content through HTML Preview and MathLive messaging to an authenticated conversation API. The author reports an October 26 fix; widespread exploitation and independent fix regression testing were not established. Impact remains unrated because the evidence does not supply a calibrated scale for this Case.
Assessed Nov 1, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-2026-NOV01-CHATGPT-SHARE-MATHLIVE-1 · Parameter: Do the Math, ChatGPT shared-link origin compromise
At a glance
The failed boundary was a receiver inside the authenticated browser origin trusting messages from a lower-trust Preview. Origin isolation of the Preview did not prevent an authorized first-party component from interpreting attacker-selected HTML, and the unsandboxed descendant document turned that markup into account-origin script. This is stronger than…
Read the implicationsResearcher-operated proof of concept, not independently observed mass compromise; the vendor fix is reported by the researcher, not re-tested in this session.
Limits and uncertaintyFull account
The researchers embedded a payload in a public share and combined an HTML Preview interaction with MathLive messaging behavior. Their controlled chain crossed the intended origin boundary and gained access to authenticated conversation APIs that should not have been available to a shared document. The report states OpenAI fixed the vulnerability on October 26. A successful controlled test does not establish widespread exploitation or the number of affected accounts.
The critical capability change occurred after attacker-authored shared content was interpreted inside browser preview and message handling: the resulting code gained an authenticated origin rather than remaining a passive public-share document. The claimed fix should be regression-tested at both message-origin validation and the private-conversation API boundary. The published reproduction does not supply a production victim count.
Mechanism detail from the October 28 researcher account. The public share could contain both a normal graph that registered MathLive's virtual-keyboard message receiver in the main ChatGPT document and an attacker-controlled HTML Preview running on an isolated origin. Preview code sent postMessage events to update the keyboard layout and show it. The receiver accepted the message without sufficiently constraining its sender; layout markup then reached innerHTML in the signed-in origin. A subsequent iframe srcdoc behavior enabled script execution and access to authenticated conversation APIs. The researchers confirmed extraction of an unrelated private conversation in their controlled test. Parameter dates the fix to October 26 and reports P1 classification. The record documents a browser-origin and embedded-component authorization failure, not model compliance with a malicious instruction.
The final stage also matters. An ordinary script element inserted through innerHTML does not run automatically. According to Parameter, an unsandboxed srcdoc iframe inherited the parent origin, and a CSP-permitted YouTube oEmbed JSONP response provided the executable script despite inline-script restrictions. Blocking the particular JSONP endpoint would break that final route but would not repair the original authorization failure in MathLive message acceptance or the HTML sink. The researcher reports OpenAI reproduced the private-chat disclosure proof and confirmed the cross-frame message fix on October 26. The public account does not establish independent post-fix regression testing.
Mechanism and trust boundary
- 01
Register a trusted-origin listener through graph
Shared content loads a graph that installs MathLive virtual-keyboard message handling in the signed-in page.
Boundary: Public share content into first-party component listener
- 02
Send messages from isolated HTML Preview
Attacker-controlled Preview sends update-setting and show postMessage commands that receiver accepts without appropriate origin restriction.
Boundary: Sandboxed cross-origin preview into main document state
- 03
Render markup and execute in chat origin
Keyboard layout HTML reaches innerHTML and an iframe srcdoc route permits script in the authenticated origin.
Boundary: Untrusted markup into authenticated code and private API access
Claims & evidence
CLM-2026-NOV05-MATHLIVE-CSP-AND-FIXParameter reports using a YouTube oEmbed JSONP callback allowed by the page Content Security Policy to execute script in an unsandboxed srcdoc frame, then says OpenAI confirmed on October 26 that both frontend variants rejected the reported cross-frame MathLive messages.supported
Basis: reported finding
- supportsParameter: Do the Math, ChatGPT shared-link origin compromiseprimary disclosure
Technical walkthrough: Bypassing CSP with YouTube JSONP; What went wrong and what OpenAI fixed; Timeline, October 22-26
CLM-2026-NOV01-CHATGPT-SHARE-MATHLIVE-1Parameter reports a demonstrated attack in which opening an attacker-controlled shared ChatGPT conversation led to script execution in the signed-in chatgpt.com origin and allowed the researchers to retrieve an unrelated private conversation.supported
Basis: reported finding
- supportsParameter: Do the Math, ChatGPT shared-link origin compromiseprimary disclosure
Parameter, Do the Math, introduction, HTML Preview, MathLive and private conversation access sections, October 26 fix
CLM-2026-NOV05-MATHLIVE-POSTMESSAGE-LAYOUTParameter reports that untrusted HTML Preview code used MathLive keyboard postMessage update-setting and show messages to inject unsanitized layout HTML into the authenticated ChatGPT document; a subsequent iframe srcdoc path gave code the authenticated origin.supported
Basis: reported finding
- supportsParameter: Do the Math, ChatGPT shared-link origin compromiseprimary disclosure
Technical walkthrough: It started with a graph and a Preview; The message that should not have worked; iframe srcdoc execution
Implications
The failed boundary was a receiver inside the authenticated browser origin trusting messages from a lower-trust Preview. Origin isolation of the Preview did not prevent an authorized first-party component from interpreting attacker-selected HTML, and the unsandboxed descendant document turned that markup into account-origin script. This is stronger than answer contamination: the researchers demonstrated an authenticated API read of another private conversation. Effective regression tests need a hostile cross-origin sender, the same message types, no executable layout markup and a check that a public-share document cannot reach a private-conversation API. A CSP-only workaround would not repair the message authorization decision. The contextual disclosure boundary explains the distinction between content legitimately shared and unrelated private data. The October 26 fix is reported by the research team, not independently revalidated here.
Controls and mitigations
- Isolate untrusted share and preview content at a distinct origin, strictly validate postMessage origins and avoid converting messages into executable HTML within the account origin.
- Verify message origin and authorized sender window at the receiving component, reject attacker-controlled markup in virtual-keyboard layouts, and keep generated descendant documents sandboxed. Test authenticated API access from public-share and Preview execution contexts independently.
Unknowns and contradictions
- Researcher-operated proof of concept, not independently observed mass compromise; the vendor fix is reported by the researcher, not re-tested in this session.
Sources and citation
Material revision history
- Nov 5, 2026 · Published version · first publication · revision 221