NemoClaw脆弱性、破られたのはサンドボックスではなく配線だった

[最終更新]

Googleで優先するソースとして追加するボタン

「ローカルで動いている」と「ローカルからしか届かない」は、同じ言葉で語られがちです。NVIDIA NemoClawの脆弱性CVE-2026-65105が突いたのは、その差でした。サンドボックスは破られていません。汚染されたのは、エージェントの一段下にあるモデルのチャットテンプレートです。


Oasis Securityは2026年8月25日、NVIDIA NemoClawの脆弱性を公表した。NVIDIAも同日、CVE-2026-65105として速報を出している。NemoClawはOpenShellのサンドボックスでOpenClawを動かし、Ollamaでローカル推論できる。影響を受ける構成では、コンテナからホストへ届かせるためOllamaが0.0.0.0:11434で起動されていた。このAPIに認証はなく、非ループバックへのバインド時はHost検証も省かれる。

攻撃者はDNSリバインディングでCORSを通過し、チャットテンプレートを書き換えられる。テンプレートは推論時に全メッセージへ適用され、エージェント自身の指示を送っても隠し命令が残る。CVSSは8.1と評価された。

From: 文献リンクDrive-By Agent Hijacking: One Website Visit, Persistent Model Poisoning

【編集部解説】

innovaTopiaは2026年3月、NemoClawの登場を「OpenClawに安全の鎧を」と紹介しました。エージェントをOpenShellのサンドボックスへ閉じ込め、ファイルシステムもネットワークもプロセスも、エージェントの外側から統制する。ファイルシステムなどの静的な制御はサンドボックスの作成時に固定され、中のエージェントが任意に書き換える設計にはなっていません。その考え方は、今回も破られていません。

破られたのは、鎧の中身ではなく、鎧の外に伸びていた一本の配線でした。

エージェントはDockerコンテナの中で動いています。コンテナの中から、ホスト上のOllamaに話しかける必要がある。ところがOllamaの既定の待ち受けはループバック(127.0.0.1)で、コンテナからは届きません。影響を受ける構成では、これをOllamaごと0.0.0.0で起動する、つまりすべてのネットワークインターフェースで待ち受けさせることで解決していました。

コンテナ間の疎通を通すという意味では、ごく普通の判断です。問題は、Ollama側の防御が、まさにこの設定のときに外れる作りになっていたことでした。

Ollamaのポート11434のAPIに認証はありません。代わりにCORSとHostヘッダ検証という二層で、ブラウザからの不正なアクセスを弾いています。このうちHostヘッダ検証は、非ループバックアドレスにバインドされている場合、丸ごとスキップされます。後にCVE-2024-28224として公開された問題への対応でOllamaが追加した防御が、0.0.0.0という一語で外れる。残るCORSは、DNSリバインディングという、少なくとも1990年代半ばから知られる手法で通過できます。

DNSリバインディングは、攻撃者が自分のドメインの向き先を、自分のサーバーから127.0.0.1へ付け替える手口です。被害者のネットワークにもDNSにも触れる必要はありません。ブラウザが同一オリジンかどうかを判定するのは、スキーム・ホスト名・ポート番号の組み合わせです。このうちホスト名は文字列として比較され、実際にどのIPアドレスへつながったかは見ていません。だから解決先が入れ替わっても、同じオリジンへのアクセスとして扱われ続けます。訪問者のブラウザが、そのまま訪問者自身のマシンへの入口になります。

ここで思い出したいのが、今回の指摘のうち最も地味で、最も効くかもしれない一点です。NemoClawはインストール時に「Using Ollama on localhost:11434」と表示していました。APIはたしかにlocalhostで届く。けれども実際のソケットは0.0.0.0に開いています。「ローカルで動いている」ことと「ローカルからしか届かない」ことは、同じ言葉で語られやすい。同じ0.0.0.0バインドにより、同一セグメントの機器はDNSリバインディングを経ずに直接APIへ到達できます。

プロンプトインジェクションとは層が違う

到達したあと、研究者が選んだ攻撃はモデルのチャットテンプレートの書き換えでした。ここが今回の記事で最も新しい部分です。

チャットテンプレートは、systemやuserといった役割つきのメッセージ配列を、モデルが実際に読む一続きのテキストへ描画するGoテンプレートです。推論のたびに、クライアントが送ったシステムプロンプトも含めた全メッセージが、このテンプレートを通ります。

そのため、モデル側のシステムプロンプト欄に命令を仕込む古典的な手口とは結果が変わります。エージェントは自分のシステムプロンプトを毎回送りますから、モデル側の欄は上書きされて消えます。ところがテンプレートは、その送られてきたシステムプロンプトの描画そのものを担当している。エージェントの指示を消すのではなく、その直後に自分の一行を足す。

攻撃者は既存のテンプレートを取得し、そこへ差し込んで戻すため、ツールの描画も特殊トークンも元のまま残ります。モデル名もサイズもメタデータも変わりません。研究チームは「クライアントには検知も防止もできない。テンプレートはAPI利用者から見えないモデル側の属性である」と述べています。厳密にいえば、テンプレートはOllamaの/api/showで取得できます。見えないのではなく、誰も見に行っていない。NemoClawがこのエンドポイントを呼ぶのは文脈長とツール対応の確認のためで、テンプレートが書き換わっていないかを照合する仕組みは置かれていません。

一回の会話を汚すプロンプトインジェクションに対して、これはモデル定義のチャットテンプレートそのものを書き換える攻撃です。CLIから叩いても、別のAPIクライアントから叩いても、同じテンプレートを通ります。システムプロンプトに書いた運用ルールをどれだけ丁寧に整えても、その指示は汚染されたテンプレートを通ってモデルへ渡ります。

守る単位が「マシン」から「権限」へ

今回の攻撃チェーンのあいだ、OpenShellのサンドボックスは一度も破られていません。ホストのファイルもプロセスも守られたままです。それでも被害が成立するのは、エージェントが仕事をするために、サンドボックスの外の資源へアクセスする権限を与えられているからです。

ソースコード管理、CI/CD、社内API、クラウド、チャット、MCPサーバー。研究チームの結論はここに置かれています。被害範囲を決めるのはサンドボックスの境界線ではなく、そのエージェントが組織の何にアクセスしてよいことになっているか、という一覧のほうだ、と。

エージェントを箱に入れる話は、この一年でずいぶん進みました。次に来るのは、箱の中の住人にどれだけの鍵束を渡すか、そして渡した鍵束をどう見張るかという話です。今回の事例は、その移行を教科書のような形で示しています。

自分の環境が対象かを、どう確かめるか

NVIDIAはCVE-2026-65105を8月25日に公開し、CVSS 8.1、CWE-306(重要な機能における認証の欠如)と評価しました。記載されている対象は「NemoClaw for Linux」、影響はバージョン0から0.0.25、想定される結果は情報漏えいとサービス妨害です。一方でOasis Securityのリサーチ責任者Elad Luz氏は、macOSとLinuxはv0.0.35で修正され、WindowsとWSLの経路には修正がなく、v0.0.34で警告付きのWindowsインストールが加わったと説明しています。

両者は矛盾しているというより、記述している範囲が違います。CVEは製品と認証の欠如を、研究側は経路と実装差を語っている。そのため、番号とスコアだけを見て自分の環境を判定することはできません。「0.0.25まで影響」という記載を「0.0.26以降なら安全」と読み替えるのも早計で、確かめるならNVIDIAのセキュリティ速報にあたるのが確実です。

配線の現状は、NVIDIA自身のドキュメントで公開されています。非WSLのホストでは、Ollamaを127.0.0.1:11434に置き、トークンで守った逆プロキシを0.0.0.0:11435に立てる構成に変わりました。24バイトのトークンは0600で保存され、サンドボックスの中のエージェントには渡りません。すでに非ループバックで動いているOllamaを見つけた場合、オンボーディングはループバックへ戻して起動し直します。

対してWSLからWindowsホストのOllamaを使う経路では、いまもOLLAMA_HOSTに0.0.0.0:11434が設定され、この逆プロキシは使われません。NVIDIAはこの経路について、Windowsのネットワークプロファイルをプライベートに保ち、公開インターフェースでポート11434への着信を塞ぎ、LANやインターネットへ晒さないよう明記しています。つまり、どの経路で入れたかによって、確認すべきことが変わります。

なお、CVE-2026-65105を含む8月25日の速報には、OpenShell側の指摘も並んでいます。そちらにはサンドボックスからの脱出にあたるものも含まれており、深刻度はより高く評価されています。今回の記事が扱うのはあくまでCVE-2026-65105の攻撃チェーンです。手を入れるなら、速報を一覧で見て、両方をまとめて片付けるのが早いはずです。

手元での確認は、それほど多くありません。ポート11434がループバックの外に開いていないかを見る。開いているなら、127.0.0.1に戻したうえでトークン認証のプロキシを前に置く。開発端末が乗っているWi-Fiで11434への着信を塞ぐ。/api/showでモデルのテンプレートを取り出し、身に覚えのない記述が混じっていないかを確かめる。疑わしければ、そのモデルを削除して信頼できる配布元から取り直す。公知の悪用報告は確認されていませんが、LAN側の露出はDNSリバインディングを必要としないため、確認の優先度は高めに置いてよいと思います。

ローカル推論を疑う話ではない

今回の一件は、ローカルでモデルを動かすという選択そのものを揺るがすものではありません。コードやプロンプトを外に出さずに済むという利点は、そのまま残っています。動いたのは、その利点を成立させるためのネットワーク境界の設定でした。

モデルの重み、チャットテンプレート、ネットワークのバインド。推論チェーンのどこか一つが書き換われば、その上に乗るすべてが変わる。エージェントが開発の現場に深く入るほど、この鎖の一つひとつが、守るに値する境界になっていきます。

NemoClawは2026年3月16日のアーリープレビュー公開から、まだ半年足らずのプロジェクトです。アーリープレビューとして公開された領域が、外部の研究者の手で一つずつ具体的な形になり、修正されていく。オープンソースのリファレンス実装が公開されているからこそ成立する回り方でもあります。ここで見つかったものは、次にエージェント基盤を作る全員の手元に残ります。

【関連記事】

OpenClawに「安全の鎧」を—NvidiaがGTC 2026でNemoClawを発表
本記事の出発点にあたる一本。OpenShellによるサンドボックスが、そもそも何を守るための設計だったのかを押さえられる。

NVIDIA NemoClawで産業設計が変わる─Cadence・Siemensら自律「AIエンジニア」が数週間を数時間に
NemoClawが実際の産業設計へ入っていく局面を伝える一本。エージェントへ渡される権限の広さが、ここでは具体的に見えてくる。

ローカルAIも「検証」の時代へ。Ollamaの脆弱性事例から学ぶ、安全な開発環境の作り方
Ollama本体の脆弱性を扱った一本。今回は本体ではなく起動設定のほうが起点である点を、読み比べて確かめておきたくなる。

OpenClawに4つの脆弱性連鎖「Claw Chain」、公開24万5,000台が認証情報窃取の危険に
エージェント自身が持つ権限は武器になる、という論点を先取りした記事。被害範囲の考え方が、今回の事案ともそのまま重なってくる。

【編集部後記】

プロキシのすべてのエンドポイントがトークンを要求します。モデル一覧を返すだけのGET /api/tagsも例外ではありません。読み取りだけなら素通しでよい、という選択をしていないわけです。

今回の一件を踏まえると、この一行の設計判断は重く見えます。列挙されて困るのは、インストール済みモデルの名前だけではありません。ホスト名も公開鍵も、同じ入口の先にあります。守る対象を「書き込み」から「入口そのもの」へ引き上げた形です。


【用語解説】

DNSリバインディング
攻撃者が自分のドメインの解決先を、自分のサーバーから被害者のローカルアドレスへ途中で切り替える手法。少なくとも1990年代半ばから知られている。

同一オリジンポリシー
ブラウザが、あるページから別の場所への通信を許すかどうかを判定する基本ルール。スキーム・ホスト名・ポート番号の組み合わせで一致を見る。

CORS
Cross-Origin Resource Sharing。オリジンをまたぐ通信をどこまで許すかを、サーバー側が宣言する仕組みである。

Hostヘッダ
HTTPリクエストが「どのホスト名宛か」を示す欄。サーバー側がここを検証すると、意図しないホスト名を経由したアクセスを弾ける。

ループバックアドレス
127.0.0.1など、自分自身のみを指すアドレス。ここにだけ待ち受けさせると、外部からは到達できない。

0.0.0.0
すべてのネットワークインターフェースで待ち受けることを意味する指定。ループバックに加えて、LAN側からも到達可能になる。

チャットテンプレート
役割つきのメッセージ配列を、モデルが実際に読む一続きのテキストへ描画するための定義。OllamaではGoのテンプレート記法を使う。

システムプロンプト
会話の冒頭に置き、モデルの振る舞いを方向づける指示文。クライアント側が毎回送る場合と、モデル側に保存しておく場合がある。

プロンプトインジェクション
入力に紛れ込ませた命令でモデルの挙動を乗っ取る手法。影響は原則として、その会話の中に留まる。

CVSS
脆弱性の深刻度を0から10で表す共通の指標。攻撃経路や、機密性・完全性・可用性への影響から算出される。

CWE
脆弱性の種類を分類する体系。CWE-306は「重要な機能における認証の欠如」を指す。

WSL
Windows Subsystem for Linux。Windows上でLinux環境を動かす仕組みで、Docker Desktopと組み合わせて使われることが多い。

MCPサーバー
Model Context Protocolに対応した外部ツール群。エージェントがファイルやサービスへ手を伸ばすための接続口になる。

【参考リンク】

NVIDIA/NemoClaw(GitHub)(外部)
NemoClawの公式リポジトリ。OpenClawなどのエージェントをOpenShellのサンドボックスで動かすリファレンス実装である。

NVIDIA/OpenShell(GitHub)(外部)
OpenShellの公式リポジトリ。ファイルシステム・ネットワーク・プロセスを制御する、エージェント向けオープンソースランタイムだ。

Ollama(外部)
Ollamaの公式サイト。ローカル環境で大規模言語モデルを実行するランタイムで、既定でポート11434にAPIを公開する。

Set Up Ollama(NVIDIA NemoClaw ドキュメント)(外部)
NemoClawのOllama設定手順。プラットフォームごとのバインド先と認証プロキシの構成が公式に記載されている。

Drive-By Agent Hijacking(Cyera Research)(外部)
Oasis Securityによる今回の研究レポート。攻撃が成立する条件と、テンプレート汚染の仕組みを一次情報として詳述している。

NVIDIA Product Security(外部)
NVIDIAの製品セキュリティ窓口。セキュリティ速報の一覧と、脆弱性報告を受け付ける際の方針が、まとめて公開されている。

CVE-2026-65105(CVE Program)(外部)
CVE-2026-65105の登録内容。対象製品、影響を受けるバージョン、CVSSスコアとCWE分類をここで確認できる。

【参考記事】

A Malicious Webpage Could Poison Your Local AI Model Behind NVIDIA NemoClaw(外部)
Elad Luz氏への取材で、macOSとLinuxはv0.0.35で修正され、WindowsとWSLの経路が別扱いだと引き出した記事。

Nvidia NemoClaw flaw let attackers poison the model behind a developer’s AI agent(外部)
CVE番号を明示し、2024年のCVE-2024-28224との連続性を、外部の専門家のコメントを交えて伝えている記事である。

NVIDIA NemoClaw Flaw Lets Malicious Websites Hijack OpenClaw AI Agents(外部)
システムプロンプトへの注入とテンプレート汚染の違いを、クライアント側の指示が上書きされる順序に沿って整理している記事だ。

Oasis Security Researchers Reveal Security Flaw in NemoClaw AI Agent(外部)
認証情報の窃取やフィッシングを経ずに成立する点へ着目し、侵害されたエージェントが到達しうる範囲を具体例とともに挙げている。

Googleで優先するソースとして追加するボタン
投稿者アバター
山本 達也 代表社員
合同会社デジタルの窓口 代表。ウェブ解析士。生成AI・サイバーセキュリティ・ 宇宙開発領域を中心に執筆。

おすすめ記事