Vulnerability · Published Oct 28, 2026 · Assigned by Linux

CVE-2026-99178x86/kvm: Don't consume async #PF flags on a kernel #PF in NMI context

Unrated

In plain English

A security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 7% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS )–Not rated
Exploit odds (30 days)0.2%top 93.1% of all CVEs
Exploited in the wildNo reportsnot in CISA KEV
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: x86/kvm: Don't consume async #PF flags on a kernel #PF in NMI context An async #PF "page not present" event arrives through the #PF vector, and its reason sits in the per-CPU apf_reason.flags until __kvm_handle_async_pf() reads and clears it. If an NMI arrives after the event is injected and before the #PF handler reads the flags, and the NMI handler itself takes a #PF, that fault reads and clears the flags belonging to the #PF it interrupted. It then finds interrupts disabled in the NMI context it interrupted, and panics: Kernel panic - not syncing: Host injected async #PF in interrupt disabled region Call Trace: <NMI> panic+0x52/0x60 __kvm_handle_async_pf+0xb0/0xb0 exc_page_fault+0x71/0xb0 asm_exc_page_fault+0x27/0x30 RIP: 0010:__get_user_nocheck_8+0x6/0x20 perf_callchain_user+0x147/0x1a0 get_perf_callchain+0x12d/0x1c0 ... perf_event_nmi_handler+0x26/0x50 exc_nmi+0xe8/0x110 RIP: 0010:asm_exc_page_fault+0x0/0x30 </NMI> The last RIP line shows the NMI landing on the first instruction of the #PF entry. perf with user call chains takes such a fault: the sampling NMI walks the user stack with __get_user(), which faults when a saved frame pointer is not a valid user address or the walk runs off the top of the stack. The same window exists when KVM, running as an L1 hypervisor with DELIVERY_AS_PF_VMEXIT, reads the flags itself after a #PF VM-exit. The NMI entry code saves and restores CR2 for this nesting, but not the async #PF reason. Andy Lutomirski described the race, with perf as the example, when async #PF delivery was reworked in 2020 [1]. Saving and clearing the flags across the NMI, next to CR2, was discussed there but not merged. Since that rework, Linux has stopped setting KVM_ASYNC_PF_SEND_ALWAYS, so the host delivers "page not present" only for user mode faults and a kernel-mode fault in NMI context (including kernel-mode #MC and #DB) cannot be an async page fault. In that case, return without touching the flags so that the interrupted handler finds them intact. Tested on v7.3-rc5 in a 4-vCPU, 2 GiB guest restored from a snapshot whose memory is served on demand through userfaultfd, so that reading it back takes async #PFs, while every thread samples hardware cycles with user call chains and points its frame pointer at an unmapped page. Without this patch the guest panicked as above in 3 of 3 runs. With it, the guest survived 3 of 3 runs of 60 seconds, and the host counted 148,441 to 153,334 kvm_async_pf_not_present events in the first 20 seconds of each. On 6.18.50 the results were the same: the guest panicked without the patch and survived with it.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:12linuxno fix listedDEBIAN-CVE-2026-99178
Debian:13linux6.12.115-2DEBIAN-CVE-2026-99178
Debian:14linux7.2.13-1DEBIAN-CVE-2026-99178
Ubuntu:22.04:LTSlinuxno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinuxno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinuxno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.10linux7.3.0-10.10UBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-awsno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-awsno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-awsno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.10linux-aws7.3.0-1004.4UBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-aws-6.17no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-aws-6.8no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-aws-7.0no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-azureno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-azureno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-azureno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.10linux-azureno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-azure-6.14no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-azure-6.17no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-azure-6.8no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-azure-7.0no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-azure-fdeno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-azure-fdeno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-azure-fdeno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.10linux-azure-fdeno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-azure-fde-6.17no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-azure-fde-6.8no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-azure-fde-7.0no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-azure-nvidiano fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-gcpno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-gcpno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-gcpno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.10linux-gcp7.3.0-1004.4UBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-gcp-6.17no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-gcp-6.8no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-gcp-7.0no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-gkeno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-gkeno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-gkeno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-gkeopno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-gkeopno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-hwe-6.17no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-hwe-6.8no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-hwe-7.0no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-ibmno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-ibmno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-ibmno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-ibm-6.8no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-intel-iotgno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-kvmno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-lowlatencyno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-lowlatencyno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.8no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-nvidiano fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-nvidiano fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-nvidiano fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-nvidia-6.17no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-nvidia-6.8no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-nvidia-7.0no fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-nvidia-bosno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-nvidia-lowlatencyno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-nvidia-tegrano fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-nvidia-tegrano fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-nvidia-tegra-igxno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-oem-6.17no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-oem-7.0no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-oracleno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-oracleno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-oracleno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.10linux-oracle7.3.0-1004.4UBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-oracle-6.17no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-oracle-6.8no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-oracle-7.0no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-raspino fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-raspino fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-raspino fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.10linux-raspi7.3.0-1004.4UBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.10linux-realtime7.3.0-10.10.1UBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-99178
Ubuntu:26.10linux-riscv7.3.0-10.10.1UBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-riscv-6.17no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-riscv-6.8no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-riscv-7.0no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-vmwareno fix listedUBUNTU-CVE-2026-99178
Ubuntu:24.04:LTSlinux-xilinxno fix listedUBUNTU-CVE-2026-99178
Ubuntu:22.04:LTSlinux-xilinx-zynqmpno fix listedUBUNTU-CVE-2026-99178

Affected products (as reported)

VendorProductVersions
Linux Linux 631bc4878220932fe67fc46fc7cf7cccdb1ec597 – before fd60b32a99627fda479c9fa1d4a82fa9f7994670631bc4878220932fe67fc46fc7cf7cccdb1ec597 – before b77e9622bbade9812e2090c66d25c372f515e921631bc4878220932fe67fc46fc7cf7cccdb1ec597 – before f45ee1ff6358a22d7e22a4c53cb3148ea97b10d9631bc4878220932fe67fc46fc7cf7cccdb1ec597 – before 81d99abe2bd81379abfb595e403bbbee6fbfc624
Linux Linux 2.6.38

References