powered by TechFeed
表示モード
主要ニュース

GPT-5.6の「思考過程」、APIの圧縮機能を悪用して丸ごと抽出される — バグバウンティ6,000ドルで修正済み

10月28日、Abinayaが「Researchers Exploit OpenAI API Flaw to Extract Hidden GPT-5.6 Reasoning Traces」と題した記事を公開した。OpenAIの会話圧縮機能「compaction」は一見無害なコンテキスト管理の仕組みだが、セキュリティ研究チームXintはこれを利用してGPT-5.6の非公開推論トレースを丸ごと抽出することに成功した。保護を迂回するために悪用されたのが、OpenAIが正規のサービスとして提供している機能そのものだったという逆説が、この脆弱性の核心にある。

10月28日、Abinayaが「Researchers Exploit OpenAI API Flaw to Extract Hidden GPT-5.6 Reasoning Traces」と題した記事を公開した。OpenAIの会話圧縮機能「compaction」は一見無害なコンテキスト管理の仕組みだが、セキュリティ研究チームXintはこれを利用してGPT-5.6の非公開推論トレースを丸ごと抽出することに成功した。保護を迂回するために悪用されたのが、OpenAIが正規のサービスとして提供している機能そのものだったという逆説が、この脆弱性の核心にある。


「compaction smuggling」とは何か

OpenAIの推論モデルは、最終的な回答を返す前に内部で問題を解く推論プロセスを持つ。APIユーザーはその要約を受け取れるが、生の推論内容(reasoning trace)は不透明トークンとして保護されており、直接参照することはできない仕様になっている。

ここで言う「暗号化」とは、一般的な暗号アルゴリズムによる暗号化とは異なる。encrypted_content はOpenAIのサーバーサイドで管理される不透明なトークン列であり、APIユーザーが直接復号する手段は提供されていない。推論モデルの内部トレースを保護するための仕様上のアクセス制御と理解するのが正確だ。

今回Xintが突いたのは、この保護された推論データを扱う「会話圧縮(compaction)」機能だ。compactionは長い会話を圧縮アイテムにまとめてコンテキストを保持するためのものだが、Xintはこのプロセスが保護された推論内容を内部で読み取りながら、同時にAPIユーザーからの指示にも従うという組み合わせに抜け穴を発見した。手法の名称「compaction smuggling」はここから来ている。

具体的な攻撃手順

攻撃手順は以下のとおりだ。

  1. gpt-5.6-sol に数学・アルゴリズムの問題を store=False で送信し、返ってきた encrypted_content を保持する
  2. 元の問題文を取り除いた上で /responses/compact を呼び出し、「推論を要約せずそのまま保持せよ」と指示する(問題文を除くのは、モデルが再度問題を解くのを防ぐため)
  3. "solution" フィールドを持つJSONオブジェクト形式でリクエストし、スペースをタブに置き換えるというフォーマット変更でOpenAIの使用ポリシーフィルターを回避
  4. 生成された圧縮アイテムを gpt-4.1 および gpt-4o に渡すと、内容が読み取り可能なテキストとして出力される

ステップ3の「スペースをタブに置き換える」という操作は、一見些細な変更に見える。OpenAIのポリシーフィルターは推論トレースの抽出を試みるプロンプトを文字列パターンで検出するが、意味的に等価でもフォーマットが異なれば同一のパターンとして認識されない場合がある。この種の表記揺らぎによるフィルター回避はプロンプトインジェクション研究でも知られた手法であり、今回もその原理が応用されたとみられる。

実験では405個の推論トークン、612トークンの圧縮アイテム、そして各デコードモデルからの609トークンの出力が確認された。2つのデコーダーモデルは同一のテキストを返した。

なぜ2026年8月の対策をすり抜けられたか

背景として、Stolen Thoughtsと呼ばれる先行研究がある。これは、より弱いモデルが強いモデルの保護された推論を露出させられることを示したもので、OpenAIはこれを受けて2026年8月に推論トレースを別モデルに直接リプレイすることをブロックする対策を導入した。

compaction smugglingはこの対策をすり抜けた。理由は、compactionが「推論を生成したモデル自身」の上で実行されるからだ。そのため8月の検査をパスし、圧縮アイテムに内容がコピーされた後は古いモデルへの移動が可能になった。すべての推論努力レベル(reasoning effort level)で機能したという。

リスクの核心:不正なモデル蒸留

Xintが指摘する主なリスクは不正な知識蒸留(distillation)だ。

知識蒸留とは、大規模な「教師モデル」の出力を用いて小規模な「生徒モデル」を訓練する手法を指す。通常は最終回答のみが蒸留の対象となるが、推論トレースが取得できれば、失敗した試みや修正過程を含む思考プロセスそのものを訓練データとして利用できる。これは最終回答だけを模倣するより格段に情報量が多く、競合他社が同等の推論能力を持つモデルを開発するコストを大幅に削減しうる。

OpenAIが推論トレースを非公開にしているのも、こうした競争上のリスクへの対応が主な理由とされている。推論モデルの内部プロセスは莫大な計算資源と研究投資の産物であり、その流出はビジネス上の損失に直結する。今回の脆弱性はまさにその保護を技術的に迂回するものだった。

なお、この問題は以前報告されたOpenAIのサンドボックス脱出の脆弱性とは異なる。Xintは自分自身のリクエストのみを使って検証しており、他のユーザーの会話にはアクセスしていない。

OpenAIの対応

OpenAIはXintからの報告を受けてバグを確認し、2026年10月23日に非公開の修正をデプロイした。Xintには6,000ドルのバグバウンティが支払われた。

Xintは最後に、「保護された推論を扱うすべてのサーバーサイド機能は、出力が引き続き保護されているとしても、同等のアクセス制御が必要だ」と警告している。推論を扱う機能が増えるほど、同様の抜け穴が生まれるリスクは高まる。


詳細はResearchers Exploit OpenAI API Flaw to Extract Hidden GPT-5.6 Reasoning Tracesを参照していただきたい。