Parameter Labsの研究者は、ChatGPTのセキュリティ境界をバイパスしてユーザーアカウントを乗っ取ることを可能にする高度な攻撃チェーンを発見しました。この脆弱性は、サンドボックス化されたiframe内でインタラクティブなカスタムHTMLアプリを表示する「HTMLプレビュー」機能に集中していました。これらのフレームは、プライベートなデータやAPIへのアクセスを防ぐためにメインのChatGPTページから隔離されるように設計されていますが、3つの異なる欠陥の組み合わせにより、プレビュー内の信頼できないコードがサンドボックスを「脱出」し、親ウィンドウでコマンドを実行することが可能になりました。

この画像は、冒頭の段落で説明されている攻撃チェーンを開始するために使用された、改変されたページ構造を示しています。
このチェーンの最初のリンクは、OpenAIがグラフサポートに使用しているMathLive JavaScriptライブラリに関係しています。このライブラリは、画面上の仮想キーボードのメッセージを処理するために、メインのChatGPTページにリスナーをインストールしていました。このリスナーは、受信する`postMessage()`呼び出しのオリジンを検証していなかったため、サンドボックス化されたHTMLプレビューを含むあらゆるソースからのコマンドを受け入れていました。攻撃者はこのリスナーにメッセージを送信して、カスタムHTMLでキーボードレイアウトを更新することができました。キーボードがトリガーされると、メインページは`innerHTML`を使用してこのレイアウトをレンダリングしました。`innerHTML`はスクリプトタグを直接実行しないため、研究者は2番目の手法を使用しました。それは、`srcdoc`属性を持つ新しい`<iframe>`を注入することです。この新しいフレームは、メインページによってサンドボックスの制限なしに作成されたため、`chatgpt.com`と同じウェブアイデンティティを持ち、親ページのデータにアクセスすることが可能になりました。
最後の障害は、インラインスクリプトをブロックする一方でYouTubeを含む少数のドメインからのスクリプトを許可するChatGPTのContent Security Policy(CSP)でした。研究者は、JSONPスタイルのコールバックをサポートするYouTubeのoEmbedエンドポイントを使用することでこれをバイパスしました。特定のコールバックを構築することで、ブラウザに信頼されたドメインから任意のJavaScriptをロードして実行させるように強制することができました。研究者が被害者の認証済みセッション内でJavaScriptの実行を達成すると、プライベートな会話リストを取得し、共有されていないプライベートなチャットからコンテンツを取得し、そのデータを外部サーバーに流出させることができました。OpenAIは2026年10月26日にこの脆弱性に対処し、この発見に対して5,000ドルのバグバウンティを提示しました。修正は確認されていますが、MathLiveの統合またはCSPルールに対して行われた具体的な技術的調整は、レポートでは公開されていません。

この画像は、プライベートなデータが外部サーバーに送信される攻撃の最終段階の視覚的な証拠を提供します。