llama.cppのrpc-serverに脆弱性、修正版はb11865
llama.cppのrpc-serverに、ネットワーク越しに認証なしでサーバーを落とせる脆弱性が見つかりました。コード実行の可能性もあります。rpc-serverを動かしている組織は、b11865以降への更新と、公開範囲の見直しを早めに進めてください。
急ぎ度: 早めに
CVSS v3は8.1、v4は9.2で、認証なしにネットワークから到達でき、修正版b11865が出ていますが、KEVへの掲載は確認されていません。
関係があるか
llama.cppのrpc-serverを使い、複数のマシンで推論を分担させている組織が対象です。rpc-serverを起動していない環境は、この問題の経路を通らないとみられます。
| 製品 | 影響を受ける版 | 直った版 |
|---|---|---|
| llama.cpp(ggml-rpc の RDMA トランスポート) | b8841以上、b11865未満 | b11865 |
確かめ方
- 1社内のサーバーやコンテナで、rpc-serverが起動していないかを確認します。起動しているホストが対象の候補です。
- 2rpc-serverが待ち受けているポートに、どのネットワークから到達できるかを確認します。
- 3ビルド番号がb8841以上b11865未満なら、影響する版です。自分でビルドしている場合は、取得したソースのタグやコミットも見てください。
- 4llama.cppを組み込んだ他社製品を使っている場合は、その製品が同梱している版を、提供元の告知で確認します。
何が起きたか
llama.cppのrpc-serverに、メモリの範囲外に書き込める脆弱性が見つかりました。認証を持たない相手がネットワーク越しにデータを送ると、サーバーが異常終了するほか、コードを実行される可能性があります。
原因は、RDMAで通信する部分の受信処理にあります。1バイト分しかないスタック上の変数に対して、最大256 KiBのデータを書き込めてしまいます。弱点の種類はCWE-787(範囲外書き込み)です。
b8841以上b11865未満が影響を受けます。b11865で修正され、情報は2026年10月28日に公開されました。
攻撃の流れ
-
1
到達
rpc-serverのポートにネットワーク経由で接続できる相手が現れます。
-
2
RDMA対応を申告
接続の最初のやり取りで、RDMAを使えると申告します。
-
3
過大なデータ送信
1バイトの変数に収まらない量のデータが送られ、スタックが溢れます。
-
4
停止かコード実行
rpc-serverが落ちるか、条件が重なるとコードが実行されます。
どう悪用されるか
認証は要りません。利用者の操作も不要で、rpc-serverのポートにネットワークから到達できれば試みられます。接続の最初のやり取りでRDMAを使えると申告する必要があり、CVSS v3では攻撃条件の複雑さが高いと評価されています。一方のv4では、条件は低いとされています。
被害として確実に起こるのは、rpc-serverの異常終了です。分散推論の途中で処理が止まり、そのサーバーに依存するサービスにも影響が出ます。
コードを実行できた場合は、rpc-serverを動かしているユーザーの権限で、ホスト上のモデルファイルや環境変数、同じ権限で触れるデータにアクセスされる恐れがあります。機密性・完全性・可用性のいずれも高い影響とされています。
今すぐやること
-
1
rpc-serverの稼働状況を洗い出す
開発機、検証環境、GPUサーバー、コンテナを対象に、rpc-serverを動かしているホストを一覧にします。一時的に立てて放置しているものも見落とさないようにします。
-
2
ビルド番号を確認する
対象ホストで版を確認し、b8841以上b11865未満かどうかを判断します。
llama-cli --version -
3
b11865以降に更新して再ビルドする
修正版のソースを取得して再ビルドするか、配布物を入れ替えます。コンテナイメージは作り直し、起動中のrpc-serverを再起動します。
-
4
待ち受けの範囲を絞る
更新後も、rpc-serverには推論に使うホストからしか接続できないようにします。信頼できない相手が届く場所には置かないでください。
-
5
異常終了の記録を調べる
更新前の期間に、rpc-serverが理由なく落ちていないかをログで見ます。不審な接続元があれば、セキュリティ担当者に共有します。
すぐ更新できないとき
すぐに更新できないときは、rpc-serverを使わない間は停止します。使う間は、ファイアウォールやセキュリティグループで、接続を許すホストを推論に必要な相手だけに限ります。インターネットや、利用者の端末が届くネットワークには公開しないでください。
背景
llama.cppは、大規模言語モデルを自分のマシンで動かすためのオープンソースの推論エンジンです。rpc-serverは、モデルの計算を別のマシンのGPUやCPUに任せる機能で、1台に載らない大きなモデルを動かしたいときや、社内の余っている計算資源をまとめたいときに使われます。
この機能は、信頼できるネットワークの中で使う前提で作られており、プロジェクトの文書でも、信頼できないネットワークへ公開しないよう注意されています。今回の脆弱性は、その前提が崩れたときの被害を大きくします。しかもC/C++の低レベルなバッファー操作で起きており、落ちるだけでなく、コード実行まで考えなければならない種類のものです。
よくある質問
Q.llama.cppを組み込んだ他の製品を使っています。影響はありますか。
まだ分かっていないこと
- 実際の攻撃での悪用が確認されているかは、公表されていません。
- RDMAを有効にしていない構成で、この経路に到達されるかどうかは、公表されている範囲では分かりません。ビルドの設定ごとの影響は、llama.cppのリリースノートや関連の情報で確認してください。
この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 直った版 |
|---|---|---|---|
| ggml-org | llama.cpp |
b8841 以上 b11865 未満 |
b11865 |
ディストリビューション別の修正状況
各ディストリビューションが公開している、この CVE の修正パッケージ
- Debian DEBIAN-CVE-2026-118375 llama.cpp
- Ubuntu UBUNTU-CVE-2026-118375 llama.cpp
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
llama.cpp b8841 before b11865 contains an out-of-bounds write vulnerability in the ggml-rpc RDMA transport rdma_recv() function that allows unauthenticated peers to overflow the rpc-server stack. Attackers advertising RDMA capabilities in the HELLO message can send up to 256 KiB into a 1-byte stack variable in rpc_serve_client(), crashing the server or potentially executing code.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- advisory nvd.nist.gov
- advisory github.com
- web disclosure@vulncheck.com
- web disclosure@vulncheck.com
- web disclosure@vulncheck.com
- web disclosure@vulncheck.com
- web disclosure@vulncheck.com
- web disclosure@vulncheck.com
- web github.com