Skip to main content

Linux Kernel KVM EUVDEUVD-2026-80529

| CVE-2026-89929 HIGH
2026-09-16 Linux GHSA-78pj-hm8w-chf6
High
Disputed · 8.8 Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain vCPU on nested-virt host
  2. Delivery
    Run L2 guest and issue INVVPID
  3. Exploit
    Migrate L1 vCPU across physical CPUs
  4. Execution
    TLB invalidation lands on wrong pCPU
  5. Persist
    Stale L2 translations persist on original pCPU
  6. Impact
    Guest/host TLB corruption and instability

Vulnerability Assessment

Exploitation Conditions

Requires a KVM x86 host with nested virtualization enabled (nested=1 / VMX exposed to guests) and an L1 guest actively running an L2 guest that issues INVVPID. The attacker must control an L1 vCPU (PR:L, local) and induce cross-physical-CPU migration timing so INVVPID is emulated on a different pCPU than the one L2 last ran on. Limiting factors: nested virtualization is a non-default, opt-in feature; exploitation depends on a narrow scheduling/migration race that is hard to control deterministically; and the primary effect is TLB corruption/instability rather than a clean data-exfiltration or code-execution primitive. Hosts without nested virt are unaffected.

Impact

This is a Linux kernel KVM nested-VMX (nVMX) correctness bug, not a memory-safety flaw: when emulating the L1 guest's INVVPID, KVM runs INVVPID on whatever physical CPU is current rather than the pCPU L2 last executed on, so after L1 migrates between CPUs the stale L2 TLB entries on the original pCPU are never invalidated. The vendor CVSS of 8.8 (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H) overstates real-world risk: AC:L is questionable because triggering the missed invalidation requires a precise vCPU/CPU-migration timing window (INVVPID on one pCPU, then L2 re-scheduled on the original pCPU before any flush), which is closer to AC:H, and C:H/I:H overstate a stale-TLB condition whose dominant outcome is guest/host instability and isolation breakage rather than reliable secret theft. No EPSS score, no CISA KEV listing, and no public PoC are present, so there is no evidence of active or imminent exploitation. The Tags field labels this 'Information Disclosure', which conflicts with the mechanism (a missed TLB flush is DoS/integrity-dominant); stale-TLB data exposure is theoretically possible but not the primary impact. Net: a legitimate isolation bug worth patching on nested-virtualization hosts, but a mid-tier priority, not an 8.8 emergency - realistically ~6.5.

Exploit ScenarioDerived

A tenant with a nested-virtualization-enabled VM (L1) runs its own guest (L2) and issues INVVPID while deliberately migrating the L1 vCPU across host physical CPUs, causing KVM to invalidate the wrong pCPU's TLB and leave stale L2 translations resident. On subsequent nested VM-Enter the L2 guest may consume stale/incorrect address translations, producing guest instability, host-side TLB corruption, or cross-context translation errors. No public exploit code is identified at time of analysis, and the required CPU-migration race makes reliable weaponization difficult.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 16, 2026

Linux kernel's KVM nested-VMX (nVMX) emulation can leave stale L2 guest TLB entries on a physical CPU, because KVM executes the L1 guest's INVVPID on whichever pCPU is currently active rather than on the pCPU where L2 last ran. When L1 migrates to another CPU, issues INVVPID, and then migrates back to the original CPU to resume L2, the stale VPID mappings on that original pCPU are never invalidated and vmx_vcpu_load_vmcs() does not request a KVM_REQ_TLB_FLUSH because vmcs02 never ran on a different pCPU. Affected are x86 hosts with non-default nested virtualization enabled and a malicious or buggy L1 guest controlling an L2 guest; exploitation requires local access to an L1 vCPU (PR:L) and a narrow cross-CPU scheduling/migration race, no public exploit code has been identified at time of analysis, and CISA KEV does not list this issue. The judged impact is primarily TLB corruption and nested-guest instability rather than a reliable code-execution or data-exfiltration primitive, consistent with an assessed vector of AV:L/AC:H/PR:L/S:C/C:L/I:L/A:H.

RemediationAI

Vendor-released patches are available: upgrade to Linux 6.12.110, 6.18.51, or 7.2.5 (or take the fix in 7.3-rc1), applying the stable-tree commit for your branch (d03e721801ac54b9fdf05668aa0c069f07913b68, 27bdeb5fd19046ffba9ff234e92fe553eb2efb30, 9941850e8adf164d005dbd3774c4b79e91a3cb8e, or 6d00e67326d831e6e610933a3800712f4ffe6ec1; see https://git.kernel.org/stable/c/d03e721801ac54b9fdf05668aa0c069f07913b68 and the linked NVD entry https://nvd.nist.gov/vuln/detail/CVE-2026-89929). If immediate patching is not possible, the most effective compensating control is to disable nested virtualization on affected x86 hosts, e.g. unloading kvm_intel with nested=0 (or building/booting without nested VMX support) and refusing to expose VMX to untrusted L1 guests; the trade-off is that legitimate nested hypervisor, container-with-KVM, and nested-VM lab workloads stop working entirely, but this removes the only reachable attack surface for this bug. As a partial mitigation for environments that must keep nested virt, pin L1 vCPUs of untrusted guests to a single physical CPU or otherwise constrain cross-pCPU migration (CPU affinity, cgroup cpuset) so the INVVPID-emulation-on-wrong-pCPU sequence cannot occur; this reduces the race window but does not eliminate it and costs scheduling flexibility and host CPU utilization. Because the flaw is a TLB-invalidation correctness bug rather than a memory-safety issue, there is no reliable seccomp/ACL-style filter to block it, and monitoring should target unexplained nested-guest crashes, guest TLB-related instability, and unusual L1-to-L2 VM-Exit/INVVPID patterns on hosts with nested virt enabled.

Affected VersionsENISA

Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <d03e721801ac54b9fdf05668aa0c069f07913b68
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <27bdeb5fd19046ffba9ff234e92fe553eb2efb30
Linux 0 <7.2.5
Linux 0 <6.12.110
Linux patch: 7.2.5
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <9941850e8adf164d005dbd3774c4b79e91a3cb8e
Linux patch: 6.18.51
Linux patch: 6.12.110
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <6d00e67326d831e6e610933a3800712f4ffe6ec1
Linux patch: 7.3-rc1
Linux 0 <6.18.51

Affected Packages

euvd linux fix: 6.12.110, 6.18.51, 7.2.5

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

VMX (Intel VT-x) assigns each virtual processor a VPID so that TLB entries for different guests can coexist in the same physical TLB; INVVPID is the instruction used to invalidate those tagged entries. In nested virtualization, KVM exposes VMX to an L1 hypervisor and runs its L2 guests inside a shadow VMCS (vmcs02), using KVM's own VPID (vpid02) rather than the VPID the L1 hypervisor assigned. When KVM emulates the L1 guest's INVVPID, it validates the operands and then executes INVVPID on the physical CPU that happens to be current, then sets last_vpid=0 to trigger a VPID flush on the next nested VM-Enter. That is only sound if the emulating pCPU is the pCPU where L2 last ran: if L1 migrates to another pCPU, the INVVPID is applied there instead, and because vmcs02 did not run on a different pCPU, vmx_vcpu_load_vmcs() sees no reason to request KVM_REQ_TLB_FLUSH when L1 migrates back. The L2 mappings cached in the original pCPU's TLB therefore survive and can be reused after L1 resumes L2 there. The root cause is a correctness/state-tracking error in TLB invalidation logic rather than a memory-safety defect (no CWE was assigned; the weakness class is improper invalidation of shared state across CPUs). The provided CPE records (cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*) and the EUVD tag set (Information Disclosure, Linux) confirm this is an upstream Linux kernel issue; the information-disclosure tag reflects the theoretical reuse of stale guest TLB mappings, but the authoritative assessment emphasizes nested-guest crash/instability as the more realistic outcome. Note the divergence between the published CVSS:3.1 vector (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H, 8.8) and our assessed vector (AV:L/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:H), which downgrades complexity to High and confidentiality/integrity to Low because exploitation hinges on a hard-to-control migration race and yields TLB state corruption rather than a clean primitive.

Know when KVM gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Sources disagree (Low–High)
Vendor (Linux) PRIMARY 8.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 7.0 HIGH

Local guest vCPU (AV:L/PR:L), CPU-migration race raises AC to H, guest→host isolation break is S:C, but impact is DoS-dominant so C/I:L and A:H.

3.1 AV:L/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:H/SC:L/SI:L/SA:N
SUSE 3.6 LOW
AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
Red Hat 4.7 MEDIUM

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
CVSS changed
Sep 16, 2026 - 15:22 NVD
8.8 (HIGH)
Patch available
Sep 16, 2026 - 11:03 EUVD
CVE Published
Sep 16, 2026 - 10:32 cve.org
UNKNOWN (no severity yet)
CVE Published
Sep 16, 2026 - 10:32 cve.org
HIGH 8.8

DescriptionCVE.org

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

KVM: nVM: Ensure INVVPID is emulated on the correct physical CPU

When emulating INVVPID, KVM executes INVVPID on the physical CPU using vpid02 (instead of the L1 assigned VPID), after doing some validations on the operands. However, it is possible that the physical CPU KVM executes INVVPID on is different from the CPU L2 is running on.

For example, in the following scenario:

  • L2 runs on CPU #1 and exits to L1 (vmx->nested.vmcs02.cpu=1)
  • L1 migrates to CPU #2 and executes INVVPID
  • KVM executes INVVPID on CPU #2
  • L1 migrates back to CPU #1 and runs L2 (vmx->nested.vmcs02.cpu=1)

The TLB entries on CPU #1 are never invalidated, because INVVPID was executed on CPU #2, and vmcs02 never ran on a different pCPU (i.e. vmx_vcpu_load_vmcs() will *not* request KVM_REQ_TLB_FLUSH).

Ensure that INVVPID is being executed on the same pCPU that L2 last ran on, and if not, fallback to clearing last_vpid=0 to trigger a full VPID flush on the next nested VM-Enter (as KVM will detect L1 using a different VPID for L2). If L2 ends up running on a different pCPU, KVM will flush the TLB anyway through vmx_vcpu_load_vmcs().

Executive ViewAI

Why It Matters

Organizations running x86 Linux KVM hosts with nested virtualization enabled may face availability and integrity risks for nested virtual machines due to a high-severity flaw in KVM's nested-VMX emulation. The issue requires local access to an L1 guest and a narrow scheduling race, and no public exploit has been identified, so exposure is limited to environments that specifically rely on this non-default configuration. Leadership should prioritize patching where nested virtualization is enabled and verify whether critical workloads depend on it.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
x86 KVM is widely deployed, but this path needs nested=1 and a running L2
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
Medium

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in KVM

View all
CVE-2026-27211 CRITICAL
10.0 Feb 21

Arbitrary host file exfiltration from Cloud Hypervisor VMM versions 34.0-50.0. CVSS 10.0. Patch available.

CVE-2026-89930 CRITICAL
9.3 Sep 16

Incorrect handling of queued local TLB flushes in the Linux kernel's KVM nested-VMX (nVMX) implementation can leave stal

CVE-2026-89918 CRITICAL
9.3 Sep 16

Address-rollover bug in the Linux kernel's KVM/arm64 TLB-by-VA invalidation path causes the hypervisor to silently skip

CVE-2026-89916 CRITICAL
9.3 Sep 16

Race conditions in the arm64 KVM path that invalidates VNCR translations can leave a stale stage-1 TLB entry installed f

CVE-2026-89915 CRITICAL
9.3 Sep 16

Missed TLB invalidations in the arm64 KVM nested-virtualization path of the Linux kernel can leave stale translations fo

CVE-2026-89914 CRITICAL
9.3 Sep 16

Range-based TLB invalidation in the arm64 KVM hypervisor of the Linux kernel is computed against the wrong address range

CVE-2026-89913 HIGH
8.8 Sep 16

A use-after-free race in the arm64 KVM vGICv3 code path of the Linux kernel (vgic_v3_save_pending_tables) allows a local

CVE-2026-89959 HIGH
8.8 Sep 16

The s390 vfio-ap mediated device (mdev) driver in the Linux kernel fails to actually revoke crypto control-domain access

CVE-2026-89957 HIGH
8.8 Sep 16

Stale hardware access to unplugged crypto resources in Linux KVM guests on IBM Z (s390) stems from a logic error in the

CVE-2026-89932 HIGH
8.8 Sep 16

Stale TLB entries can be reused by an L2 guest in the Linux kernel's KVM nested virtualization (nVMX) implementation on

CVE-2026-89908 HIGH
8.8 Sep 16

On LoongArch hosts running KVM, a memory-slot update that changes only flags (KVM_MR_FLAGS_ONLY, most notably toggling K

CVE-2026-89960 HIGH
8.8 Sep 16

A use-after-free (CWE-416) in the Linux kernel's s390/vfio-ap AP crypto passthrough driver allows a local attacker with

Vendor StatusVendor

SUSE

Severity: Low
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy