LinuxのKVMにゲスト脱出を許す脆弱性「Zapscape」が判明、ネステッド仮想化環境に影響
要点
-
Linuxの仮想化技術「KVM」において、ゲストVMからホスト環境への脱出とコード実行を可能にする脆弱性「Zapscape」が発見された。
-
脆弱性「CVE-2026-64561」は、メモリ管理を行うシャドウMMUのチェック順序の不備に起因する。
-
影響を受けるのは、信頼できないゲストに対してネステッド仮想化を有効にしているKVMホストである。
-
既にLinuxカーネルのアップストリームで修正が完了しており、管理者にはアップデートが推奨されている。
-
実証コード(PoC)は公開されたが、現時点で実際の攻撃における悪用は確認されていない。
-
Linuxカーネルの仮想化技術「KVM」(Linuxを仮想化のホストにする仕組み)において、ネステッド仮想化(仮想マシンの内部でさらに別の仮想マシンを起動する機能)を利用している場合に、ゲストOSからホストの制御を奪うことができる深刻な脆弱性「Zapscape」が明らかになった。この脆弱性はセキュリティ研究者のHyunwoo Kim(キム・ヒョンウ)氏によって発見され、2026年8月6日に詳細が一般公開された。対象のシステム管理者は、修正プログラムの適用などの対応が推奨されている。
脆弱性の概要と発生条件
「CVE-2026-64561」として管理されるこの脆弱性は、KVM/x86のメモリ空間管理機能である「シャドウMMU」に存在する。L1(第1階層)ゲスト内のカーネル権限(通常はゲスト内のroot権限)を持つ攻撃者が、KVMの隔離境界を回避してホストのLinux上で任意のコードを実行(ゲスト脱出)できる可能性があるという。
リスクが生じるのは、ネステッド仮想化が信頼できないゲストに開放されている環境である。Intel製プロセッサ環境では、L1ゲストに対してメモリ仮想化技術であるEPT(Extended Page Tables)のページウォーク長4および5の両方が露出していることが条件だが、AMD製環境には同様の条件はなく、ネステッド仮想化(SVM/NPT)環境であれば発生する。
メモリ解放後使用(Use-After-Free)のメカニズム
本脆弱性は、KVMのシャドウMMUにおける「メモリ解放後使用(Use-After-Free)」の不備である。Red Hatのアドバイザリでは、本件を「期限切れのポインタ参照(CWE-825)」に分類し、予備的なCVSS深刻度スコアを7.0と評価している。
Kim氏の技術解説によると、ゲストが誘発するページフォールト(メモリ上にデータが存在しない場合に発生する割り込み)の処理中に、KVMが他のMMUページを回収(reclaim)しようとする。この回収処理によって、現在処理中のパスが使用しているシャドウMMUのルートページが無効化されることがある。しかし、KVMがルートページのチェックを適切に行わないため、無効化されたルートの下で子シャドウページの作成を継続してしまう。その結果、解放されたメモリ領域への不正な書き込みが可能になるという。
実証コードと現実の悪用リスク
Kim氏は、この脆弱性を利用してホスト上にroot権限でファイル「/Zapscape」を作成する概念実証(PoC)コードを公開した。この検証はLinuxカーネルバージョン7.1.3上のAMD環境を対象として行われており、安全なテストのためにCPUエミュレータである「QEMU」のTCGモードでの実行を推奨している。なお、QEMU自体にバグはなく、問題はカーネル内のKVMに存在する。
ただし、Kim氏は「このコードはクラウド環境で即座に動作する兵器化されたエクスプロイトではない」と説明している。実際の悪用には、攻撃コードをゲスト用のカーネルモジュールに移植し、ホストカーネルの構成やメモリ状況に適合させる必要があるため、攻撃の難易度は高い。現時点で実際の悪用事例は確認されていない。
影響範囲と修正状況
米国国家脆弱性データベース(NVD)によると、影響を受けるのはLinuxカーネルバージョン5.9以降で、修正済みの安定版(6.6.148、6.12.101、6.18.42、7.1.6、および7.2-rc5)より前のバージョンである。
Debianのトラッカー(8月6日時点)では、bullseye、bookworm、trixie、および開発中のforkyが脆弱であり、sidについては「7.1.6-1」で修正済みとなっている。またRed Hatは、自社のパッケージでは全体のバージョンを上げずに修正パッチのみをバックポートして対応することがあるため、個別の情報を確認するよう注意を促している。
キム氏が公開した報告から修正までのタイムラインは以下の通りである。
- 7月11日:Kim氏がsecurity@kernel.orgに問題を報告。
- 7月21日:修正パッチが投稿され、アップストリーム(開発本流)にマージ。
- 8月1日:linux-distrosリストへ提出(5日間の情報公開制限付き)。
- 8月4日:CVE-2026-64561が割り当てられる。
- 8月6日:詳細の一般公開。
開発本流にマージされた修正パッチ(コミットID: 2abd5287f083)では、ルートページのチェック処理を行うタイミングを、MMUページを確保する処理の後へと移動させた。これにより、ページの回収処理によって現在のルートが無効化された場合、KVMはそのまま処理を続けず、ページフォールト処理を最初から再試行(RET_PF_RETRY)するようになった。
補足
Kim氏はこれまでにもKVMに関する脆弱性報告を行っており、2026年6月にはKVM/arm64のゲスト脱出に関する「ITScape」(CVE-2026-46316)、7月にはKVM/x86のシャドウMMU脆弱性「Januscape」(CVE-2026-53359)を報告している。