ARM64システム向けLinuxカーネルベースの仮想マシン(KVM)に重大な脆弱性が見つかりました。攻撃者がこれを悪用すると、仮想マシンから脱出してホストのカーネルメモリに対する読み書きアクセス権を取得できる可能性があります。
この脆弱性はCVE-2026-89775として追跡されており、ネスト型仮想化を有効にしたARM64ホストに特に影響を及ぼします。すでにメインラインのLinuxカーネルでは対処済みです。
セキュリティ研究者のHyunwoo Kim氏は、協調的開示の禁輸期間が終了した後にこの問題を公表しました。このバグは、KVM/arm64における仮想CPUのネスト型仮想化制御構造の処理方法に起因しており、解放済みのホストメモリページが悪意あるゲストに対して書き込み可能な状態のままマッピングされてしまうことがあります。
Linux KVMの重大な欠陥
この脆弱性の根本原因は、ステージ1ページテーブルウォークのレベルに影響する型切り捨て(type truncation)にあります。アドレス変換処理の過程で、この切り捨てによってサイズ計算がゼロを返してしまい、本来は「サイズ不明」を表すはずの値として扱われてしまいます。
脆弱性スキャンサービス
しかし、Virtual Nested Control Register(VNCR)の疑似TLB(Translation Lookaside Buffer)無効化パスは、このゼロ値を誤って有効な範囲サイズとして解釈してしまいます。その結果、無効化処理は空のアドレス区間を対象とすることになり、処理自体が完全にスキップされてしまいます。
この古いマッピングが残存する状態こそが、セキュリティ上の核心的なリスクを生み出します。つまり、解放済みのホストページが、攻撃者が制御するゲスト環境に書き込み可能な権限のままマッピングされ続ける可能性があるのです。
公開された情報によると、ゲストはその後、影響を受けるホストページに対して予測可能な固定アドレスで64ビットの読み書きを実行できます。これらの操作はトラップやVM終了(VM exit)をトリガーすることなく発生するため、攻撃者は従来のハイパーバイザー脱出手法に頼らずとも、ホストメモリを直接操作できてしまいます。
CVE-2026-89775は、ネスト型仮想化を有効にしたマルチテナントのARM64クラウド環境において、とりわけ深刻な問題となります。ネスト型仮想化に対応したゲストインスタンスを作成・制御できる攻撃者であれば、この欠陥を悪用してゲストOSから基盤となるホストへ移動できる可能性があります。
さらに、この問題は脆弱性のあるLinuxディストリビューションにおいてローカルでの権限昇格のリスクももたらします。アドバイザリによれば、Red Hat Enterprise Linuxの一部の構成を含む一部のディストリビューションでは、/dev/kvmが誰でも書き込み可能な0666のパーミッションで公開されています。
ネスト型仮想化が有効になっている場合、権限を持たないローカルユーザーでもKVMにアクセスでき、この脆弱性を悪用してホスト上でroot権限を取得できる可能性があります。
実際の影響範囲は、ARM64ハードウェア、使用中のカーネルバージョン、KVMの可用性、ネスト型仮想化が有効かどうかなど、複数の要因に左右されます。KVM/arm64のネスト型仮想化を使用していないシステムは、今回説明した攻撃経路による影響を受けないと考えられます。
脆弱性のあるコードは2025年5月14日付けのLinuxコミット7270cc9157f47で導入され、2026年8月6日付けのコミット8053393680d4によるアップストリーム修正まで存在していました。
管理者は、アップストリームのパッチが適用されたカーネルリリースへの更新、またはベンダーが提供する修正済みカーネルパッケージの入手を行う必要があります。ARM64インフラを運用するクラウドプロバイダーは、ネスト型仮想化がテナントに対して公開されているかどうかを確認し、共有ホストへのパッチ適用を優先的に進める必要があります。
一時的な対策として、業務上不可欠でない場合はネスト型仮想化を無効化し、/dev/kvmへのアクセスを信頼できるユーザーおよびサービスに限定することが推奨されます。
セキュリティチームは、ARM64仮想化ホストの棚卸しを行い、カーネルバージョンを確認するとともに、CVE-2026-89775に関連するバックポート修正についてベンダーのアドバイザリを注視する必要があります。
SOCのアラート調査時間を1件あたり21分短縮。即座に対応できるIOCコンテキストでSOCを強化: TI Lookupを自社のSOCに統合する
翻訳元: https://gbhackers.com/critical-linux-kvm-flaw/