LMCache の脆弱性 CVE-2026-105192:ZeroMQ 経由での未認証の RCE の恐れ

Unpatched Critical LMCache Flaw Lets Unauthenticated Attackers Run Code Remotely

2026/10/07 TheHackerNews — vLLM などの LLM サーバを高速化する、オープンソース・ソフトウェア LMCache に存在するのは、攻撃者のログインを必要とせず、キャッシュ・サーバ上でのコード実行を許す深刻な脆弱性であり、現時点で修正版は提供されていない。この脆弱性が存在するのは LMCache のマルチプロセス・モードであり、このモードではキャッシュが独立したサーバとして動作し、ZeroMQ メッセージング・ライブラリ経由でのアクセスを LLM ワーカーに提供する。したがって、このサーバへ 1 つのネットワーク・メッセージを送信するだけで、LMCache プロセスを実行しているユーザーの権限でコマンドを実行できる。

このサーバへ別のマシンから到達できるのは、デフォルトの localhost ではなく、ルーティング可能なアドレスで待ち受けるよう、管理者が設定した場合に限られる。

JFrog が 10月7日に公表したのは、この脆弱性であり、CVSS 9.8 と評価している。ただし、この評価は、ルーティング可能なアドレスにバインドされたサーバを対象とするものである。

この脆弱性 CVE-2026-105192 は、2025年10月にリリースされた LMCache バージョン 0.3.9 から、最新の安定版である 0.5.5 までに影響する。また、バージョン 0.5.6 のリリース候補版/開発ブランチにも、この脆弱性は存在しており、修正版は提供されていない。

サーバが外部から到達可能になるかどうかは、1 つの設定によって決定される。デフォルトでは、マルチプロセス・サーバはローカルマシン上でのみ待ち受けるため、別のホストからは到達できない。マルチノード環境において、管理者がルーティング可能なアドレスを指定して起動すると、複数のマシンがキャッシュを共有する場合などにおいて、別のホストから到達可能になる。

LMCache が公開している Kubernetes の導入例では、この方法でサーバを起動し、すべてのネットワーク・インターフェイスで待ち受けるよう設定している。その一方で、単一の vLLM プロセス内で動作する LMCache は、このポート自体を開かない。

マルチプロセス・サーバが、ワーカー・プロセスによる登録/キャッシュデータの共有のために開く、ZeroMQ ソケットには認証が存在しない。メッセージの一種は、Python の形式である pickle を使用してデシリアライズされる。pickle にはコードを含めることが可能であり、データのデシリアライズ時に、そのコードの実行が可能になる。その時のサーバは、メッセージの種類を確認する前段階で、引数を読み取っている時点でデシリアライズするため、細工したメッセージを介した送信者のコードが実行されてしまう。

このコードは、LMCache プロセスの権限で実行される。JFrog によると、プロジェクトの公式コンテナ・イメージでは、このプロセスが root 権限で動作している。この脆弱性を発見したのは、JFrog のセキュリティ研究チームに所属する Yuval Moravchick である。

現時点で修正版はリリースされていない。そのため、修正版が提供されるまでの間の対策として JFrog が推奨しているのは、マルチプロセス・サーバにルーティング可能なアドレスを割り当てず、ポートをローカルマシン/信頼できるクラスタ・ネットワーク内に留めることである。ポートへ接続できるホストを、ファイアウォールで制限すればリスクは低減できるが、完全には排除できない。依然として接続可能なホストであれば、コードを実行できるためである。

現時点の LMCache は、この脆弱性についてセキュリティ・アドバイザリを公開していない。また、JFrog のアドバイザリでは、すでにサーバが攻撃を受けたかどうかを、管理者が判断するための方法が提示されていない。

その他の報告/関連する vLLM の修正

これとは別に、脆弱性 CVE-2026-105192 が公開される前日の 10月6日に、ある GitHub ユーザーが LMCache に関する 6 件の追加のセキュリティ問題を報告した。内容は、異なるテナントに属するキャッシュ・データへ認証なしでアクセスできるという主張/ログインせずにコマンドを実行する複数のネットワーク・サービスに関する主張などである。

これらの報告は 1 つのアカウントから投稿され、概念実証 (PoC) の主張に基づくものであり、CVE の割り当て/メンテナによる確認/修正は存在しない。そのうち 1 件は、その後に変更された LMCache のデフォルト設定を指摘している。バージョン 0.5.5 では、すべてのネットワーク・インターフェイスで待ち受けていた管理用 HTTP サーバが、0.5.6 のリリース候補版では localhost のみで待ち受けるようになっている。

vLLM に存在していた脆弱性は、すでに修正されている。9月22日にリリースされたバージョン 0.30.0 以下では、不正な形式の cache_salt 値を含む 1 件のリクエストにより、LMCache のマルチプロセス・コネクタを使用する環境で、エンジンをクラッシュさせることが可能だった。脆弱性 CVE-2026-105756 として追跡されているサービス拒否 (DoS) の欠陥であり、CVSS は 6.5 と評価されているが、コード実行はできない。

根本的な問題である、未認証のネットワーク・ソケットから受信したデータを pickle へ渡すという処理は、研究者が 2025年11月に他の AI 推論フレームワークで発見し、ShadowMQ と名付けた一連の脆弱性と同じものである。ただし、LMCache のコードが、これらのプロジェクトと共通のソースに由来するかどうかは確認されていない。