
このツールは、Ollama バージョン 0.1.45 以前におけるモデル存在開示の脆弱性 CVE-2024-39722 を悪用するために設計されています。ユーザーは Ollama サーバーが脆弱かどうかを確認し、サーバー上の既存モデルを発見する試みを行うことができます。さらに、公式の Ollama モデルライブラリをクロールして、テスト用の潜在的なモデルリストを生成することもできます。 中文
/api/push エンドポイントに特別に細工されたリクエストを送信することで、攻撃者はサーバー上に特定のモデル(公開ライブラリにないカスタムモデルを含む)が存在するかどうかを判断できます。https://ollama.com/library)からモデルリストを取得します。requestslxmltermcolorCVE_2024_39722.py をダウンロードします。pip install requests lxml termcolor
python CVE_2024_39722.py [options]
-h, --help: ヘルプメッセージを表示して終了します。-u URL, --url URL: 対象の Ollama サーバー URL(例: http://localhost:11434)。-c, --crawl: Ollama モデルライブラリをクロールし、links.json に保存します。-o OUTPUT, --output OUTPUT: 結果の出力ファイル(デフォルト: results.json)。-t THREADS, --threads THREADS: 悪用に使用するスレッド数(デフォルト: 10)。-v, --version-check: バージョンに基づいて、対象の Ollama サーバーが脆弱かどうかのみを確認します。ヘルプの表示:
python CVE_2024_39722.py -h
Ollama モデルライブラリのクロール:
これは https://ollama.com/library からモデル名を取得し、links.json に保存します。
python CVE_2024_39722.py --crawl
対象サーバーが脆弱かどうかの確認:
python CVE_2024_39722.py -u http://localhost:11434 --version-check
対象サーバーの悪用:
最初にサーバーのバージョンを確認します。脆弱な場合、links.json を使用して(存在しない場合はクロール、または既存のものを使用)モデルの存在をテストします。
python CVE_2024_39722.py -u http://localhost:11434
特定のスレッド数での悪用:
python CVE_2024_39722.py -u http://localhost:11434 -t 20
悪用して結果をカスタムファイルに保存:
python CVE_2024_39722.py -u http://localhost:11434 -o discovered_models.json
このツールは教育および許可されたセキュリティテストの目的のみを意図しています。所有者の明示的な許可なしにいかなるシステムでも使用しないでください。作者はこのツールの誤用または損害について一切の責任を負いません。