vLLM Flaw Allows Remote Code Execution Through Malicious Payloads
2025/11/24 gbhackers — LLM 向けの高スループット推論/サービング・エンジンとして広く利用されている vLLM に、深刻なセキュリティ欠陥が発見された。この脆弱性 CVE-2025-62164 を悪用する攻撃者は、Completions API エンドポイントに悪意のペイロードを送信することで、任意のリモート・コード実行を可能にする。

メモリ破損の脆弱性が vLLM のデプロイメントを脅かす
この脆弱性は、ユーザーから提供されるプロンプトにエンベッドされたデータの不適切な処理に起因し、vLLM バージョン 0.10.2 以降に影響を及ぼす。
つまり、それらのエンベッドされたデータを処理する際に、システムは十分な検証チェックを行わずに PyTorch の torch.load() 関数でテンソルをデシリアライズする。その結果として、攻撃者が悪用できる攻撃ベクターが生じてしまう。
| Attribute | Details |
|---|---|
| CVE ID | CVE-2025-62164 |
| Severity | High |
| CVSS Score | 8.8/10 |
| Affected Product | vLLM (pip) |
| Affected Versions | ≥ 0.10.2 |
この問題の根本的な原因は、PyTorch 2.8.0 で導入された動作変更にある。それは、スパース・テンソルの整合性チェックをデフォルトで無効化するものである。その結果として、攻撃者は内部境界チェックを回避する悪意のテンソルの作成が可能になった。したがって、それらの改竄されたテンソルが to_dense() 関数で処理されると、境界外メモリ書き込みが発生し、アプリケーションのメモリ空間が破損する。
AXION Security Research Team のセキュリティ研究者である Omri Fainaro と Bary Levy が、協調的な情報開示活動を通じて、この脆弱性を発見した。
彼らの調査によると、API アクセス権を持つユーザーは、この脆弱性を悪用することで、2つの深刻な影響を引き起こせるという。それらは、vLLM サーバをクラッシュさせるサービス拒否攻撃と、ホスティング環境全体を侵害するリモート・コード実行である。
この脆弱性は vLLM/entrypoints/renderer.py 内の _load_and_validate_embed 関数に存在し、信頼できない入力に対する安全でないデシリアライズ処理を、検証不足により許してしまうものだ。
この関数はユーザーから Base64 エンコードされたテンソルを受け取るが、攻撃を防止する PyTorch の torch_sparse.check_sparse_tensor_invariants コンテキスト・マネージャを有効化していない。
この脆弱性 CVE-2025-62164 は CVSS スコア 8.8 (High) と評価されており、複数の CWE カテゴリに該当する。具体的には、不適切な入力検証/信頼できないデータのデシリアライズ/書き込み位置制御 (write-what-where) 条件/範囲外書き込み操作である。
すでに vLLM 開発チームは、プルリクエスト #27204 を通じて、このセキュリティ問題に対処している。この修正では、デシリアライズ前の適切なテンソル検証が実装されている。
vLLM をサーバとして運用している組織、あるいは、信頼できないモデル提供ペイロードを処理している組織にとって必要なことは、潜在的な悪用からデプロイメントを保護するために、提供されているパッチを直ちに適用することだ。
この脆弱性は、vLLM がユーザー入力に含まれるテンソルを十分に検証せずにデシリアライズしてしまう点に起因します。PyTorch 側の挙動変更により、スパース・テンソルの安全チェックが無効化されたことで、境界外メモリ書き込みが起こり得る状態になっていました。そのため、悪意あるデータの送信により、サーバ・クラッシュや、任意のリモート・コード実行が発生してしまいます。ご利用のチームは、ご注意ください。よろしければ、vLLM での検索結果も、ご参照ください。
You must be logged in to post a comment.