Case · 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.

Scope

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.

At a glance

Mechanism and trust boundary

  1. 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

  2. 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

  3. 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

Link to claim
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

Link to claim
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

Link to claim

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

  1. Nov 5, 2026 · Published version · first publication · revision 221