---
id: CVE-2026-99176
title: >-
  KVM: nVMX: Reset MMU back to the root MMU if loading L2 state fails for
  !VM-Entry
summary: >-
  In the Linux kernel, the following vulnerability has been resolved:


  KVM: nVMX: Reset MMU back to the root MMU if loading L2 state fails for
  !VM-Entry


  Reset the vCPU's MMU pointer back to the root MMU if loading L2 state fails

  in the "n…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 72e9cbdb43384ceacc49e2fb6b8c8fb7c5988778 <
    d00d5f534a8238674755e59826a6c7d3c8efb870
  - >-
    Linux >= 72e9cbdb43384ceacc49e2fb6b8c8fb7c5988778 <
    c9716f956216eb74ab0aad7f633586edd49e0322
  - >-
    Linux >= 72e9cbdb43384ceacc49e2fb6b8c8fb7c5988778 <
    c8f4cfe1cf93bce924e27f2abead7a4c4a487505
  - Linux 4.15
published: '2026-10-28'
updated: '2026-10-28'
sourceUpdated: '2026-10-28T10:35:30.615Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-99176'
references:
  - url: 'https://git.kernel.org/stable/c/d00d5f534a8238674755e59826a6c7d3c8efb870'
  - url: 'https://git.kernel.org/stable/c/c9716f956216eb74ab0aad7f633586edd49e0322'
  - url: 'https://git.kernel.org/stable/c/c8f4cfe1cf93bce924e27f2abead7a4c4a487505'
tags:
  - cve.org
ingestedAt: '2026-10-28T11:09:40.383Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

KVM: nVMX: Reset MMU back to the root MMU if loading L2 state fails for !VM-Entry

Reset the vCPU's MMU pointer back to the root MMU if loading L2 state fails
in the "not from VM-Entry" case, i.e. when emulating RSM or handling
KVM_SET_NESTED_STATE.  Failure to unwind the MMU pointer results in KVM
trying to run L1 with a nested MMU, and is especially problematic if the
vCPU manages to free its nested state before the VM crashes.  Constructing
the root for a nested EPT MMU goes through vmcs12, which is dynamically
allocated/freed when nVMX is enabled/disabled.  And so if the nested state
is freed with the MMU still pointing at the nested MMU, KVM will hit a NULL
pointer deref when attempting to get L1=>L2 EPTP.

  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]

## Affected

- `Linux >= 72e9cbdb43384ceacc49e2fb6b8c8fb7c5988778 < d00d5f534a8238674755e59826a6c7d3c8efb870`
- `Linux >= 72e9cbdb43384ceacc49e2fb6b8c8fb7c5988778 < c9716f956216eb74ab0aad7f633586edd49e0322`
- `Linux >= 72e9cbdb43384ceacc49e2fb6b8c8fb7c5988778 < c8f4cfe1cf93bce924e27f2abead7a4c4a487505`
- `Linux 4.15`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
