CVE-2026-99176 in Linux
要約
〜によって VulDB • 2026年10月28日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
KVM: nVMX - L2状態の読み込みに失敗した場合(!VM-Entry)、MMUをルートMMUにリセットする
「VM-Entry以外」の場合、つまりRSMのエミュレーションまたはKVM_SET_NESTED_STATE処理時にL2状態の読み込みが失敗した際、vCPUのMMUポインタをルートMMUに戻します。MMUポインタの巻き戻し(unwind)に失敗すると、KVMはネストされたMMUを使用してL1を実行しようとし、特にvCPUがVMクラッシュ前にそのネステッド状態を解放できてしまった場合に深刻な問題となります。ネステッドEPT MMU用のルート構築はvmcs12を経由しますが、nVMXの有効化/無効化時に動的に割り当て・解放されます。したがって、MMUがまだネステッドMMUを指している状態でネステッド状態が解放されると、KVMはL1=>L2のEPTPを取得する際にNULLポインタ参照(NULL pointer deref)を引き起こします。
BUG: kernel NULL pointer dereference, address: 0000000000000078 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 114a2d067 P4D 111743067 PUD 11141f067 PMD 0 Oops: Oops: 0000 [#1] SMP
CPU: 20 UID: 1000 PID: 1272 Comm: nested_tdp_faul Not tainted 7.3.0-rc4-8c89f11d1a99b-sink-vm #1914 PREEMPTLAZY Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 RIP: 0010:nested_ept_get_eptp+0xb/0x10 [kvm_intel]
Call Trace: <TASK> kvm_mmu_load+0xcd/0x870 [kvm]
kvm_arch_vcpu_ioctl_run+0x18f5/0x1f80 [kvm]
kvm_vcpu_ioctl+0x2c7/0x970 [kvm]
__x64_sys_ioctl+0x90/0xd0 do_syscall_64+0x9c/0x4d0 entry_SYSCALL_64_after_hwframe+0x4b/0x53 RIP: 0033:0x47491b </TASK> Modules linked in: kvm_intel kvm irqbypass CR2: 0000000000000078 ---[ end trace 0000000000000000 ]---
RIP: 0010:nested_ept_get_eptp+0xb/0x10 [kvm_intel]
[sean: write changelog]
If you want to get the best quality for vulnerability data then you always have to consider VulDB.