Linux vhost の脆弱性 CVE-2026-74580:root 権限昇格と VM エスケープの PoC が公開

PoC Released for Linux Vhost Flaw Enabling Root Privilege Escalation and VM Escape

2026/10/14 CyberSecurityNews — Linux カーネルの vhost に存在する脆弱性 Vghost (CVE-2026-74580) に対して、概念実証 (PoC) が公開された。この脆弱性を悪用するローカル・ユーザーは、root 権限を取得する可能性があるほか、特定の仮想マシン構成では、ゲスト環境から脱出してホスト側に影響を及ぼす恐れがある。CVE-2026-74580 の CVSS v3.1 スコアは 8.8 (High) であり、更新された Linux カーネルで修正されている。

vhost は、仮想マシンによるネットワークなどの、デバイス間通信トラフィックの処理を高速化する Linux カーネルの仕組みであり、ゲストとホストの間でデバイス・データを転送するために、virtqueue と呼ばれる共有キューを使用する。今回の脆弱性は、vhost が仮想キューのメモリ上の位置を特定するために使用する、IOTLB マッピング情報のキャッシュ処理に存在する。

具体的には、仮想リング (vring) の設定変更時に、Linux がリングのアドレスまたはサイズを更新しても、ディスクリプタ領域/利用可能領域/使用済み領域に対応するキャッシュ済みマッピングが消去されないという問題が生じる。結果として、その後の処理でキャッシュがヒットすると、本来実行されるべきアドレス検証が省略され、古いマッピングが再利用され、新しいリングのアドレスに対して誤ったアドレス変換が行われる可能性がある。これにより、不正なメモリアドレスを指すポインタが、カーネルのメモリ・コピー処理に渡される恐れがある。

Seclists メーリングリストに掲載された技術分析では、この不具合の原因として、過去に行われた Linux カーネルの 2 つの変更が挙げられている。一方の変更ではメタデータキャッシュが導入され、もう一方ではゲスト I/O アドレスの検証が遅延されるようになっていた。

ローカル権限昇格の前提としては、攻撃者による /dev/vhost-net や /dev/vhost-vsock などの vhost デバイスのオープンが必須となる。公開された PoC では、マッピング情報をキャッシュに登録した後、エントリを消去せずにリングのアドレスを変更し、キューの処理を開始させることで古いキャッシュ情報を再利用させる。

この操作により、カーネル・メモリの読み取りと書き込みが可能になると、研究者たちは指摘している。実証された攻撃は、カーネル・メモリからアドレス空間配置のランダム化 (ASLR) によるオフセットを特定し、カーネル内の modprobe_path 変数を書き換えるものだ。その後に、カーネル・モジュールの読み込みを要求し、攻撃者が制御するヘルパー・プログラムを root 権限で実行する。

以下の Linux ディストリビューションで攻撃を再現したと、研究者たちは報告している。

  • Ubuntu 26.04
  • RHEL 9.8
  • Amazon Linux 2023
  • Azure Linux 3.0
  • Oracle Linux 10.2

ただし、vhost デバイスへのアクセス権限は、ディストリビューションや設定に応じて異なり、検証対象の Ubuntu 環境では kvm グループにアクセスが制限されていた。その一方で、他の検証環境では、一般ユーザーにもアクセスが許可されていた。

このため、デバイスのパーミッション確認は、脆弱性の影響を受ける可能性を判断するうえで重要だが、アクセス制限はパッチ適用の代わりにはならない。したがって、修正プログラムが未適用のシステムでは、kvm グループや vhost デバイスへのアクセス権を持つ他グループへの所属を、特権的なアクセス権を持つことに等しく扱う必要がある。

特定の仮想マシン構成ではゲストからホストへの脱出も懸念

ゲスト環境からの攻撃には、以下の条件を満たす仮想マシン構成が必要となる。

  • 仮想 IOMMU が有効であること。
  • vhost デバイスで iommu_platform が有効になっていること。
  • virtio のキューリセット機能 VIRTIO_F_RING_RESET が利用できること。

この構成では、ゲストがキューをリセットして再び有効化すると、ホスト側でリングが再設定されるが、古いメタデータがキャッシュから消去されず、更新後のリングにおいて不正なマッピングが使用される可能性がある。その状態で、ゲストがキューの処理を開始させると、古いマッピングによる使用済みリングへの書き込みがゲスト・メモリの範囲を逸脱し、QEMU プロセスのヒープ領域に及ぶ恐れがある。

研究者たちによると、このメモリ破損は QEMU のクラッシュや制御フローへの影響につながる可能性があり、特定の仮想化構成では VM エスケープ (仮想マシンからの脱出) のリスクとなる。ただし、すべての仮想マシン上で、ゲストからホストへの脱出が可能になるわけではない。

修正済み Linux カーネルのバージョン

Linux カーネルのアップストリームでは、リングのアドレスまたはサイズが変更された際に vring のメタデータ・キャッシュを消去する修正が行われ、更新後のリング設定では IOTLB によるアドレス検証が改めて行われる。

影響を受ける各バージョン系列で、最初の修正済みアップストリーム安定版は以下のとおりである。

Linux カーネル系列最初の修正済みバージョン
5.10 系5.10.265
5.15 系5.15.216
6.1 系6.1.183
6.6 系6.6.152
6.12 系6.12.104
6.18 系6.18.45
7.1 系7.1.9
7.2 系7.2

管理者にとって必要なことは、修正を含む Linux カーネルまたはディストリビューションのベンダーが、修正をバックポートしたカーネルをインストールし、再起動して適用することである。

パッチ適用までの緩和策

修正済みカーネルに更新できない場合は、vhost デバイスへのアクセスを制限し、以下のデバイスノードを信頼できないコンテナに渡さないことで、ローカルからの悪用リスクを軽減できる。

  • /dev/vhost-net
  • /dev/vhost-vsock
  • /dev/vhost-scsi
  • /dev/vhost-vdpa-*

仮想化ホストに修正プログラムを適用できない場合は、仮想 IOMMU が有効化され、iommu_platform を使用する vhost デバイスを、信頼できないゲストに公開しないようにする必要がある。ただし、デバイスのパーミッションを変更しても、すでに開かれているファイル・ディスクリプタは閉じられず、アクセス権限の変更だけではゲスト側から開始される攻撃経路にも対処できない。

そのため、アクセス制限は一時的な緩和策と位置付け、修正を含むカーネルへの更新を優先することが推奨される。

関連情報として、Cyber Security News は Linux カーネルの権限昇格の脆弱性や、KVM におけるゲストからホストへの脱出リスクについても報じている。

今回の脆弱性に関する技術分析と PoC の公開元については、原資料を確認し、それぞれ特定する必要がある。