脆弱性  ·  2026-10-21

LMCache (vLLM KV-cache) 認証なしpickle逆直列化RCE

脆弱性High 影響度GlobalCVE-2026-105192
LMCacheのマルチプロセス/分散モードは、ワーカーがKVキャッシュブロックを共有できるように、認証なしのZeroMQ ROUTER(デフォルトポート5555)を開きます。メッセージはmsgpackで、拡張コード1はDeviceIPCWrapper.Deserializeに渡され、リクエスト引数をデコードしながらpickle.loadsを呼び出します。そのため、マルチノードデプロイのようにトランスポートがルーティング可能なアドレスにバインドされている場合、認証なしの単一のZMQメッセージでLMCacheプロセスとしてコードが実行されます(公式コンテナイメージではroot)。
LMCacheは多くのチームがvLLM推論サーバーに組み込むKVキャッシュ層です。トランスポートポートに到達できる攻撃者は、モデルサーバーホスト上で事前認証RCEを実行し、モデルウェイトやプロンプトキャッシュを読み書きし、サービングクラスタ内にピボットできます。これはまさにAIサービングインフラの欠陥です。関連する問題(CVE-2026-107204)とオプトインの/run_scriptエンドポイントが露出を拡大しています。
トランスポートポートへの認証なしの単一のZMQ DEALERメッセージで、pickle.loadsをトリガーする細工されたmsgpack拡張を運ぶ。
LMCache 0.3.9から0.5.5(および0.5.6リリース候補)をvLLMのKVキャッシュ層として使用。ZeroMQトランスポートがルーティング可能なアドレスにバインドされた場合、またはK8sマニフェストの例が全インターフェースにバインドされた場合に露出。
LMCache 0.5.6にアップグレード(pickleをバージョン付き型付きMessagePackに置き換え、K8sマニフェストの例はlocalhostにバインド、イメージは非rootで実行)。それまではトランスポートをlocalhost/信頼済みクラスタに保ち、ポート5555をファイアウォールで保護し、非rootで実行。
NVD — CVE-2026-105192Miggo — LMCache RCE via pickle deserializationLevel Up Coding — LMCache RCE / pickle audit
ライブフィードで見る AIセキュリティとガバナンスの関連情報をさらに見る — 毎朝更新。
フィードを開く →