HN 日本語サマリー

← 一覧へ戻る
セキュリティ

Januscape: KVM/x86におけるゲストからホストへのエスケープ [CVE-2026-53359]

Januscape: Guest-to-Host Escape in KVM/x86 [CVE-2026-53359] (github.com)

118 pointsby Imustaskforhelp46 コメント

要約

Januscape (CVE-2026-53359) は、KVM/x86環境でゲストOSがホストOSへ脱出できる脆弱性です。これはIntelとAMDの両方のアーキテクチャでトリガー可能で、シャドウMMUエミュレーションにおけるuse-after-freeのバグを利用します。この脆弱性は、特にマルチテナント型のパブリッククラウド環境において、ゲストとホストの分離を脅かす可能性があります。

全文翻訳

Januscape: KVM/x86におけるゲストからホストへのエスケープ 概要 このドキュメントは、Hyunwoo Kim(@v4bel)によって発見および報告されたJanuscape(CVE-2026-53359)脆弱性について説明します。これは、KVM/x86環境においてゲストがホストへ脱出することを可能にするKVMエスケープ脆弱性です。 公知の限りでは、これは単一のアーキテクチャに限定されず、IntelとAMDの両方でトリガー可能な最初のゲストからホストへのエクスプロイト研究です。 Januscapeは、KVM/x86のシャドウMMUエミュレーションにおけるuse-after-free脆弱性です。ゲスト側の操作のみでバグをトリガーし、ホストカーネルのシャドウページを破損させることができます。これは、信頼できないゲストを受け入れ、ネストされた仮想化を公開するKVM/x86ホスト、特にマルチテナントのx86パブリッククラウド(GCP、AWSなど)のゲストとホストの分離を脅かす可能性があります。 実際、JanuscapeはGoogle kvmCTFで0-dayエクスプロイトとして成功裏に使用されました。 詳細な技術情報については、こちらをご覧ください。 注記 この脆弱性を linux-distros@vs.openwall.org に報告した後、合意されたエンバーゴ期間が終了したため、エクスプロイトはoss-securityに投稿され、このJanuscapeドキュメントが公開されました。開示タイムラインについては、技術詳細ドキュメントをご覧ください。 PoC構造 ゲストVM内でPoCを実行すると、ホストカーネルパニックを引き起こす可能性があります。 制御された環境で機能する完全なエスケープエクスプロイトも存在しますが、現時点ではリリースされておらず、非常に遠い将来のリリースが予定されています。 RHELのようなディストリビューションでは、/dev/kvmはワールド書き込み可能(0666)であるため、権限のないユーザーでもこの脆弱性を信頼性の高いLPE(ローカル権限昇格)に変換してroot権限を取得できます。ただし、それを行うことは「ゴミに金貨を払うようなもの」なので、ここでは触れません。 PoCの使用方法 ゲストVM内で、ヘッダーをインストールし、モジュールをビルドします。 # sudo apt-get install -y build-essential linux-headers-$(uname -r) # make ゲスト内でモジュールをロードします。KVMは生のVMX/SVM状態を保持しているため、まずアンロードします。 Intelの場合は引数なしで、AMDの場合は amd=1 を付けてロードします。 [Intel] # sudo rmmod kvm_intel; sudo insmod poc.ko [AMD] # sudo rmmod kvm_amd; sudo insmod poc.ko amd=1 レースが開始され、数秒から数分以内にホスト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 このPoCは正確な情報を提供することを目的としています。許可されていないシステムでのテストには使用しないでください。 影響を受けるバージョン Januscape(CVE-2026-53359)は、2032a93d66fa(2010-08-01)から81ccda30b4e8(2026-06-16)までの範囲をカバーしています。つまり、この脆弱性は約「16年間」潜伏していました。 FAQ この脆弱性の影響は何ですか? 合計で2つの影響があります。 KVMエスケープ: ゲスト側の操作のみで、攻撃者は自身のVMを実行しているホストを侵害できます。例えば、パブリッククラウドで単一のインスタンスを借りた攻撃者は、ホストカーネルをパニックさせて同じ物理マシン上の他のすべてのテナントVMをダウンさせる(DoS)か、ホスト上のroot権限でコードを実行してホストとそれに含まれるすべてのゲストを乗っ取る(RCE)ことができます。 LPE: RHELのようなディストリビューションでは、/dev/kvmはワールド書き込み可能(0666)であるため、権限のないユーザーはこの脆弱性を信頼性の高いLPEとして使用してroot権限を取得することもできます。 心配すべきですか? マルチテナントゲストを受け入れ、ネストされた仮想化をサポートするx86 KVMホストを運用している場合、またはその上にインスタンスを使用している場合は、ホストカーネルに81ccda30b4e8パッチが適用されていることを確認してください。 arm64ベースのKVMホストも脆弱ですか? いいえ。この脆弱性はIntelおよびAMDアーキテクチャでのみトリガーされます。ただし、以前に公開されたITScape(CVE-2026-46316)をまだパッチ適用していない場合、arm64ホストも脆弱であるため、速やかにパッチを適用してください。 この脆弱性はQEMUで発生しますか? いいえ。一般的に公開されているQEMUエスケープ脆弱性とは異なり、Januscapeはカーネル内のKVMで発生するため、QEMUのエミュレーションとは独立してトリガーされます。このため、独自の仮想化スタックを実装および使用している大規模なパブリッククラウドも脅かす可能性があります。 ゲストVM内でroot権限が必要ですか? はい。モジュールの挿入にはゲストカーネル権限が必要です。パブリッククラウドでインスタンスを割り当てられる場合、通常は自身のVMでroot権限を持っているので、これは満たされます。ゲストroot権限がないシナリオでは、Dirty FragのようなLPEと連鎖させる必要があります。