2026年10月7日、JFrogセキュリティ研究チームはCVE-2026-105192を公開した。LMCache 0.3.9〜0.5.6において、CVSS 9.8の未認証リモートコード実行(RCE)脆弱性が存在することが明らかになった。
事実の整理
JFrogが公開した脆弱性の詳細によると、LMCacheはマルチプロセスモードにおいてデフォルトでポート5555番にZeroMQ ROUTERソケットを開放するが、CURVE・ZAP・パスワード・メッセージ認証のいずれも有効化されていない。このソケットは本来、同種のLMCacheプロセス間通信にのみ使用されるものだが、オペレーターが--hostパラメーターでルーティング可能なアドレスにバインドすると、外部からポートへのアクセスが可能になる。公式コンテナイメージはrootユーザーでプロセスを実行しているため、悪用された場合、攻撃者は最高権限を取得できる。
脆弱性の原因はメッセージ処理パスにある。msgpackのデコード時に拡張コード1が登録されており、これはDeviceIPCWrapper.Deserializeメソッドに対応し、同メソッドが直接pickle.loadsを呼び出す。デコードはREGISTER_KV_CACHEパラメーターの処理段階で実行されるため、攻撃者は細工したDEALERメッセージを1件送信するだけで逆シリアル化を引き起こし、任意のコードを実行できる。影響を受けるバージョンは、PyPIの最新リリース版0.5.5、リリース候補版0.5.6(rc3まで)、および2026年10月7日時点の開発ブランチであり、現時点で修正版は存在しない。
メカニズムの解説
マルチプロセスモードは、LMCacheがノード間でKVキャッシュ共有を実現するデフォルトの方式である。http_server起動時に--host 0.0.0.0を指定すると、ZMQソケットはすべてのインターフェースを監視する。メッセージ形式はmsgpackであり、拡張タイプ1はpickle逆シリアル化ロジックに直接マッピングされ、かつこのロジックはパラメーター検証の前に実行されるため、メッセージ1件で悪用が完結する。PoC(概念実証)では、攻撃者がEvilPayloadオブジェクトを構築し、os.systemでファイルを書き込む様子が示されており、サーバー側はその後に型エラーをログに記録するのみで、コードの実行を阻止することはできない。
単一ホストでデフォルトのlocalhostバインドを使用している場合、外部からのアクセスは不可能だが、複数ノードの本番環境ではルーティング可能なアドレスを開放する必要があり、この場合に脆弱性が直接露出する。公式のKubernetesガイドが推奨する構成は、まさにこの高リスクのシナリオに該当する。
産業への影響
LMCacheはvLLM本番推論層における汎用的な高速化コンポーネントであり、その脆弱性はマルチプロセスモードを採用している推論クラスター全体に直接影響する。KVキャッシュ共有にこのコンポーネントを使用しているデプロイ環境において、ポートが外部または信頼されていないネットワークからアクセス可能な状態であれば、リモートコード実行のリスクにさらされる。公式コンテナがrootで実行されていることは、潜在的な被害をさらに拡大させる要因となっている。
現時点でPoCが公開されており、攻撃の難易度は低い。vLLMユーザーがデフォルト設定を変更していない、またはネットワークアクセスを制限していない場合、本番環境が侵害される可能性がある。当面の緩和策として、ポートの監視対象をlocalhostまたは信頼済みクラスターネットワークのみに限定し、ファイアウォールポリシーと組み合わせることが、現時点で即座に実施できる唯一の対策である。
戦略的考察
(以下は分析であり、確定的事実ではない)過去のpickle逆シリアル化脆弱性の事例を踏まえると、AI基盤コンポーネントが内部通信をデフォルトで信頼し、認証を省略した場合、大規模展開後に攻撃対象となりやすい。LMCacheの今回の脆弱性は、推論加速層とセキュリティ境界の間の乖離を浮き彫りにしており、今後同種のコンポーネントはゼロトラストモデルを設計段階から優先的に考慮しなければ、多ノード展開時の高リスクが継続することになる。企業は自社のデプロイ環境が影響を受けるバージョンを使用していないか早急に評価し、アップストリームの修正動向を注視すべきである。
© 2026 Winzheng.com 赢政天下 | 转载请注明来源并附原文链接