このリポジトリには、脆弱性のある Ollama GGUF 読み込みおよび量子化パスにおけるヒープ領域外読み取り(CVE-2026-7482)のローカル再現スクリプトが含まれています。
この作業で重要な結果は限定的です。ヒープ領域外(OOB)状態を確実に発生させ、OOB の影響を受けた量子化 GGUF アーティファクトを生成することはできました。しかし、平文シークレットの確実な復元や、生成されたアーティファクトからのカナリア文字列の直接抽出など、明確なブラックボックス的な影響を示すことはできませんでした。
exp.py は2つの GGUF ファイルを作成します:
両方のファイルをローカルの Ollama API を通じて脆弱性のある Ollama インスタンスにアップロードし、/api/create で量子化をトリガーし、生成された GGUF ブロブをローカルの Docker コンテナからコピーし、悪意のある出力とゼロ対照出力を比較します。
差分比較が有用なのは、脆弱性のある量子化パスが、元の悪意のある GGUF ファイルに存在しなかったバイトを使用したことを示すためです。私のテストでは、この動作は Ollama 0.17.0 で安定しており、修正版の 0.17.1 パスでは拒否されました。
requests を備えた Python 30.17.0ollama-old-test)ラボターゲットの例:
docker run -d --name ollama-old-test -p 11435:11434 ollama/ollama:0.17.0
唯一の Python 依存関係をインストールします:
python3 -m pip install requests
http://localhost:11435 とコンテナ ollama-old-test に対してデフォルトテストを実行します:
python3 exp.py
明示的な引数:
python3 exp.py http://localhost:11435 ollama-old-test Q4_K_M F16
python3 exp.py http://localhost:11435 ollama-old-test Q8_0 F16
python3 exp.py http://localhost:11435 ollama-old-test Q8_0 F32
スクリプトは以下のようなローカルアーティファクトを書き出します:
malicious_model.ggufcontrol_model.ggufquantized_model.ggufcontrol_quantized_model.ggufq8_dequantized_f32.binq8_pseudo_f16.binq8_pseudo_f16.txt私のローカルテストでは、脆弱性のある Ollama バージョンは、悪意のある GGUF ファイルにそれらのバイトが含まれていないにもかかわらず、悪意のあるテンソルペイロードがゼロ対照テンソルと異なる量子化出力を作成しました。
これは OOB の影響を受けたアーティファクトを示すには十分です。実用的なブラックボックス的なデータ開示を主張するには不十分です。
また、同時モデルプロンプトでカナリアスタイルのデータをテストし、生成されたアーティファクト、Q8_0 逆量子化 float32 バイト、および疑似 F16 再構築出力を検索しました。正確なカナリアや意味のある平文断片を復元することはできませんでした。
その理由はおそらく、バイトが生のヒープメモリとしてコピーされないためです。それらはモデル変換および量子化パイプラインを通過します:
ヒープバイト -> F16/F32 テンソル値として解釈 -> 変換/量子化 -> GGUF テンソル出力
このパスは、特に Q4_K_M などの量子化形式では損失が大きくなります。Q8_0 は Q4_K_M よりも多くの数値情報を保持しますが、それでも私のブラックボックス的なテストでは信頼性の高い平文復元は生成されませんでした。
これはローカルラボでの再現およびアーティファクト分析の補助ツールです。
信頼性の高いリモートシークレット流出プリミティブを提供するものではありません。また、Ollama が生成したブロブをテストコンテナからコピーするためにローカルの Docker アクセスが必要なため、分析ステップは純粋なリモートブラックボックスワークフローではありません。
私のテストからの実用的な結論は次のとおりです:
0x0OZ による別の PoC リポジトリもあります:
その実装は、生成されたモデルアーティファクトを管理されたレジストリにプッシュすることで、より強力なホワイトボックス的なワークフローを実証しています。私の PR によるレジストリアップロードフローの修正により、ローカルラボで正常に完了します:
そのより優れたエンドツーエンドのアーティファクト収集パスがあっても、同じデータ品質の注意点が重要であり続けます: 出力は量子化/モデル変換されたデータであり、直接の生のヒープダンプではありません。
このリポジトリは、許可された脆弱性研究および防御的な再現のみを目的としています。所有しているシステム、または評価する明示的な許可を得たシステムに対してのみテストしてください。