![Januscape: KVM/x86 におけるゲストからホストへの脱出 [CVE-2026-53359]](/_next/image?url=%2Fscreenshots%2F2026-07-07%2F1783379387628.webp&w=3840&q=75)
2026/07/07 2:35
Januscape: KVM/x86 におけるゲストからホストへの脱出 [CVE-2026-53359]
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Januscape(CVE-2026-53359)は、Hyunwoo Kim(@v4bel)が発見し報告した重要な KVM/x86 エスケープ脆弱性です。これは、Intel 及び AMD アーキテクチャの両方で実行可能な初のゲストからホストへのエクスプロイトトリガーであり、インナーネール KVM コンポーネント内のシャドウ MMU イミュレーションにおける使用後の解放(use-after-free)問題に起因します。このコンポーネントは QEMU のイミュレーション層とは独立して動作します。エクスプロイトの実行には通常、ゲスト VM 内で root 権限が必要であり、これは公有クラウドインスタンスで一般的に入手可能です。Januscape は linux-distros@vs.openwall.org 向けのエムボーゴの解除と oss-security への公開が実施される前に Google kvmCTF で 0 デイエクスプロイトとして成功裏に使用されました。提供されたポフ・オブ・コンセプト(PoC)を実行するとホストカーネルパニックをトリガーすることができ、完全なエスケープエクスプロイトの公開は後日に計画されています。この欠陥は、コミット 2032a93d66fa(2010-08-01)から 81ccda30b4e8(2026-06-16)までのカーネルに影響し、メインラインコードにおける約 16 年の休眠期間に相当します。RHEL などのディストリビューションでは、
/dev/kvm がワールドワritable(0666)な場合、非特権のゲストユーザーが直接 root にエスカレートできます(LPE)。影響には、KVM エスケープによるホスト侵害や他のテナントへの DoS、そしてワールドワritable /dev/kvm を持つシステムでの LPE が含まれます。パッチ 81ccda30b4e8 を適用することにより、ネスティブバーチャライゼーションをサポートするマルチテナントゲストを実行する x86 ホストは緩和されますが、arm64 ベースの KVM ホストは Januscape による直接影響を受けませんが、ITScape(CVE-2026-46316)がパッチ適用されていないままであればリスクにさらされています。公有クラウド環境と即座な更新を必要とするレガシインフラストラクチャは、適切にパッチが適用されない限り非常に脆弱です。本文
Januscape:KVM/x86 環境におけるゲストからホストへの脱出
概要
本ドキュメントは、Hyunwoo Kim 氏(Twitter: @v4bel)が発見した Januscape(CVE-2026-53359)に関する脆弱性を解説します。
- 脆弱性の種類: KVM/x86 環境におけるゲスト VM からホスト OS への脱出(KVM escape)。
- 仕組み: シャドウ MMU エミュレーション部分の使用後解放(use-after-free)を利用。
- 特徴:
- ゲスト側の操作のみでホストカーネル内のシャドウページを破損可能。
- 従来の単一アーキテクチャ限定とは異なり、Intel および AMD の両アーキテクチャで動作。
- リスク: マルチテナント型の高可用性 x86 クラウド環境(GCP、AWS など)におけるゲストとホストの分離を脅かす。
- 現状: Google kvmCTF で 0-day 脆弱性として実際に利用され、合意された情報公開制限期間(embargo)が終了したため、エクスプロイトコードおよび詳細技術資料が公表されました。
PoC の構造と警告
- 動作結果: ゲスト VM 内で PoC を実行するとホストカーネルパニックを引き起こします。
- 完全なエスケープ攻撃コードも存在しますが、現時点では非公開です。
- LPE の注意点(RHEL など):
が世界書き込み可能(0666)であるため、特権なしで root 取得が可能。/dev/kvm- ただし、この手法は**「ゴミに金を払うようなこと」**であり、解説は行いません。
PoC の使用方法
⚠️ 警告: 本 PoC は正確な情報を提供することを目的としています。ご検証が許されるシステム以外での使用を絶対に避けてください。
手順 1:ヘッダーのインストールとコンパイル
ゲスト VM 内で以下のコマンドを実行します。
# sudo apt-get install -y build-essential linux-headers-$(uname -r) # make
手順 2:モジュールのロード(事前準備)
KVM は生の VMX/SVM 状態を保持しているため、最初に既存のモジュールをアンロードしてください。
[Intel] アーキテクチャの場合 引数なしでロードします。
# sudo rmmod kvm_intel; sudo insmod poc.ko
[AMD] アーキテクチャの場合
amd=1 という引数を指定してロードします。
# sudo rmmod kvm_amd; sudo insmod poc.ko amd=1
手順 3:ホスト KVM のパニック誘発
レースコンディションが発生し、数秒から数分以内にホストがパニックになります。
[*] poc step 4/4: race live -- host DoS triggering ... kernel BUG at arch/x86/kvm/mmu/mmu.c (pte_list_remove) Comm: qemu-kvm
影響を受けるバージョン
- コミット範囲:
(2010 年 8 月 1 日) 〜2032a93d66fa
(2026 年 6 月 16 日)81ccda30b4e8 - 潜伏期間: この脆弱性は約**「16 年間」**も修正されておらず、潜伏していました。
よくある質問(FAQ)
Q. この脆弱性の影響は何ですか?
A. 大きく分けて以下の 2 つの影響があります:
- KVM escape: ゲスト側の操作のみでホスト OS を乗っ取ることができます。
- パブリッククラウド上では、単一インスタンスをレンタルした攻撃者が他テナントの VM を停止させる(DoS)か、ホスト上で root 権限を取得して全体を掌握できる(RCE)。
- LPE: RHEL など
が 0666 の環境では、特権のないユーザーが root 権限を取得できます。/dev/kvm
Q. この脆弱性について心配すべきですか?
A. 次の条件に該当する場合は、必ずホストカーネルにパッチ
を適用してください:81ccda30b4e8
- x86 ベースの KVM ホストを運用している
- マルチテナントゲストを受け入れる
- ネステッドバーチャライゼーションをサポートしている
Q. arm64 ベースの KVM ホストも脆弱でしょうか?
A. いいえ。この脆弱性は Intel および AMD アーキテクチャでのみトリガーされます。
- ただし、別の脆弱性であるITScape(CVE-2026-46316)のパッチが適用されていない場合は、arm64 ホストも影響を受ける可能性があります。速やかにパッチを適用してください。
Q. この脆弱性は QEMU でも発生するでしょうか?
A. いいえ。
- Januscape はカーネル内組み込みの KVM で発生するため、QEMU のエミュレーションとは独立してトリガーされます。
- 独自バーチャライゼーションスタックを使用する大手パブリッククラウドもこの脅威の影響を受けます。
Q. ゲスト VM 内で root 権限が必要でしょうか?
A. はい。
- モジュールを挿入するにはゲストカーネルの特権(root)が必要です。
- パブリッククラウドでは通常、インスタンス上で root 取得が可能です。
- ゲスト内に root がいない場合は、Dirty Frag などの LPE とチェーン化して利用する必要があります。