Skip to main content

Linux Kernel EUVDEUVD-2026-80516

| CVE-2026-89916 CRITICAL
2026-09-16 Linux GHSA-5p99-rg43-px7f
Critical
Disputed · 9.3 Vendor: Linux
View

Attack ChainAIDerived

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

  1. Access
    Attacker controls guest vCPU on arm64 NV host
  2. Delivery
    Run concurrent VNCR fault and S1 TLBI on two vCPUs
  3. Exploit
    Win invalidation-vs-faultin race window
  4. Execution
    Host inserts stale/invalid VNCR TLB entry
  5. Impact
    Translation corruption crashes/destabilizes host

Vulnerability Assessment

Exploitation Conditions

Requires an arm64 host running KVM with nested virtualization support (FEAT_NV2 / VNCR fixmap path) enabled, and an attacker who already controls a guest with at least two concurrently-running vCPUs. Exploitation depends on winning a narrow race window between invalidate_vncr_va() on one vCPU and a VNCR translation fault-in on another vCPU (one vCPU updates S1 page tables and issues TLBI S1E2 while the other is mid-walk). Limiting factors: local access via a guest vCPU only (no remote/network path), timing-dependent race that is not deterministically triggerable, and the requirement for the rarely-deployed arm64 nested-virtualization feature - most arm64 KVM deployments do not enable NV and are unaffected.

Impact

This is a genuine but low-real-world-priority host-availability bug, and the vendor CVSS of 9.3 materially over-states it. The description is unambiguous that the flaw is a race condition (CWE-362) in KVM arm64's VNCR TLB invalidation path: invalidate_vncr_va() failed to bump mmu_invalidate_seq, so one vCPU can insert a TLB entry for a translation another vCPU just invalidated via S1E2 TLBI. This is a wrong-translation/TLB-corruption problem, not a controlled read/write primitive. The provided CVSS vector (AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) contains two clear errors: PR:N is wrong because triggering the race requires an already-running guest vCPU issuing faults and TLBIs (that is at least PR:L), and AC:L understates a timing-dependent inter-vCPU race window (realistically AC:H). C:H/I:H are also overstated - a stale/invalid TLB entry most plausibly yields crash/incorrect execution (DoS-dominant), with at most bounded integrity impact. There is no EPSS score, no KEV listing, and no public POC in the provided data, and the affected code path (arm64 nested virtualization / FEAT_NV2 VNCR) is very rarely deployed. Net: real bug worth patching on affected NV-enabled arm64 KVM hosts, but not a widespread-exploitation priority. My independent estimate is roughly 6.x, not 9.3.

Exploit ScenarioDerived

A malicious or buggy L1 guest running on an arm64 KVM host with nested virtualization (FEAT_NV2/VNCR) enabled runs code on two vCPUs simultaneously: one faults in a VNCR translation while the other updates the stage-1 page tables and issues a TLBI S1E2 for the same VA. Winning this narrow timing window causes the host to install a stale/invalid VNCR TLB entry, corrupting translation and destabilizing the host. No public exploit code is identified in the provided data, and the local, race-dependent nature makes reliable exploitation difficult.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
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

Race conditions in the arm64 KVM path that invalidates VNCR translations can leave a stale stage-1 TLB entry installed for a page-table mapping that another vCPU has just invalidated, so a guest can keep using a translation the host believes is gone, corrupting host state and potentially crashing the host. The flaw only affects arm64 hosts running KVM with nested virtualization (FEAT_NV2 / VNCR fixmap) enabled where an attacker already controls a guest with at least two concurrently executing vCPUs, and exploitation hinges on winning a narrow race window between invalidate_vncr_va() on one vCPU and a VNCR translation fault-in on another (one vCPU rewriting S1 page tables and issuing TLBI S1E2 while the other is mid-walk). Because the path is local-only and nested virtualization on arm64 is rarely deployed, the independent assessment rates the issue well below the vendor's CVSS 9.3 (assessed AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:H - high availability impact, low integrity impact, no confidentiality impact); no public exploit identified at time of analysis, and vendor patches are available in Linux 7.2.5, 6.18.51 and 7.3-rc1.

RemediationAI

Apply the vendor kernel updates: upgrade to Linux 7.2.5, 6.18.51 or 7.3-rc1 (or later on those branches), which include the fix commits d8580e7aa189b0c6c5bb4d94b8352728a7c35bbd, 11ee3faab4f1755d126bead9f882e75a7a677860 and 2b7324f3a0c1072b9d578b8d42f199506753f26e (see https://git.kernel.org/stable/c/d8580e7aa189b0c6c5bb4d94b8352728a7c35bbd and the EUVD advisory EUVD-2026-80516 / https://nvd.nist.gov/vuln/detail/CVE-2026-89916). Distro backports should be tracked through the respective stable branch, since older LTS kernels need a port of these specific commits rather than a plain version bump. If patching cannot be done promptly, the most effective compensating control is to stop exposing nested virtualization on arm64 - do not enable FEAT_NV2 for guests (for example by not passing the NV capability through the VMM/KVM configuration), which removes the VNCR fixmap translation path entirely; the trade-off is that nested guests will no longer work at all. Because exploitation requires an attacker who already controls a multi-vCPU guest on the host, additionally constrain who can start arm64 KVM guests (restrict /dev/kvm access to trusted tenants and avoid running untrusted multi-vCPU guests alongside sensitive workloads), accepting that this is a trust-boundary measure rather than a technical fix; there is no known configuration switch to make the individual invalidate_vncr_va() race deterministic-safe, and the race window cannot be reliably closed without the upstream sequence-counter change.

Affected VersionsENISA

Linux 4ffa72ad8f37e73bbb6c0baa88557bcb4fd39929 <2b7324f3a0c1072b9d578b8d42f199506753f26e
Linux 4ffa72ad8f37e73bbb6c0baa88557bcb4fd39929 <d8580e7aa189b0c6c5bb4d94b8352728a7c35bbd
Linux patch: 7.3-rc1
Linux 4ffa72ad8f37e73bbb6c0baa88557bcb4fd39929 <11ee3faab4f1755d126bead9f882e75a7a677860
Linux patch: 0
Linux patch: 7.2.5
Linux patch: 6.18.51
Linux 6.16

Affected Packages

euvd linux no fix

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

KVM on arm64 uses a two-stage translation regime: the guest's own stage-1 (S1) page tables, and a host-managed stage-2 (S2) table. With nested virtualization (FEAT_NV2), each nested vCPU is backed by a VNCR page - a fixmap-mapped structure holding the virtualized EL2 registers - that the host must translate through the guest-controllable S1 tables. The bug is a TOCTOU race in that translation path: vCPU A walks the page tables to translate VNCR and is preempted before taking the MMU lock and installing the TLB entry, while vCPU B simultaneously rewrites the S1 entries to an invalid value and issues a TLBI S1E2 for that virtual address; vCPU A then installs a TLB entry for a translation that is already invalid, and the stale entry is subsequently used. The existing S2 handling already solves the analogous problem by having the MMU notifier bump mmu_invalidate_seq so the fault is replayed; the fix extends invalidate_vncr_va() to update that same sequence counter, safely because VNCR invalidation always runs under the MMU write lock and the sequence number is sampled before the S1 walk begins. No CWE is assigned in the source data, but the class is a concurrent-execution / stale-TLB race (TOCTOU on a shared page-table and TLB structure) rather than a classic memory-safety defect. Note that the supplied tag 'Information Disclosure' is inconsistent with the assessed impact (C:N, I:L, A:H), which points to host availability loss with limited integrity impact from scope escalation, not data exposure.

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 (Medium–Critical)
Vendor (Linux) PRIMARY 9.3 CRITICAL
AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 6.4 MEDIUM

Local guest vCPU access (AV:L, PR:L), timing race lowers reliability (AC:H), guest-to-host crossing (S:C); impact is host instability (A:H) with at most bounded integrity (I:L) and no real confidentiality primitive (C:N).

3.1 AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:L/SA:H
SUSE 4.5 HIGH
AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L
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
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
CVSS changed
Sep 16, 2026 - 15:22 NVD
9.3 (CRITICAL)
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
CRITICAL 9.3

DescriptionCVE.org

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

KVM: arm64: Make VNCR invalidation participate in MMU invalidation retry

A VNCR TLB invalidation can occur on one vcpu while another vcpu is faulting in this same page. Without correctly handling this, we can end up with the following scenario:

  • vcpu A walks the PTs to translate VNCR
  • before vcpu A is able to grab the MMU lock to insert the TLB,

vcpu B updates the S1 PTs with an invalid entry, and issues a TLBI S1E2 for this VA

  • vcpu A inserts the TLB for something that is now invalid

This isn't a new problem, and we manage S2 by having the MMU notifier to bump up mmu_invalidate_seq on invalidation so that the fault can be replayed.

We can perform something similar here, and extend invalidate_vncr_va() to update the same counter, clearly indicating that the context has changed under our feet. This is safe as the invalidation always happen while holding the MMU lock for write, and that we sample the sequence number before walking S1.

Executive ViewAI

Why It Matters

A race condition in the arm64 KVM nested-virtualization path (FEAT_NV2/VNCR) can let a guest retain a stale stage-1 TLB translation the host believes has been invalidated, allowing host memory corruption and potentially crashing the physical arm64 host and every workload running on it. Exposure is limited to organizations running arm64 hosts with KVM nested virtualization enabled, and an attacker must already control a guest VM with at least two concurrently executing vCPUs and win a narrow timing window, so the practical risk is concentrated in multi-tenant or nested-virtualization environments rather than broad fleets.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Low
arm64 KVM with nested virtualization (FEAT_NV2/VNCR) enabled is niche, rarely in production
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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
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-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-89929 HIGH
8.8 Sep 16

Linux kernel's KVM nested-VMX (nVMX) emulation can leave stale L2 guest TLB entries on a physical CPU, because KVM execu

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: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 16.0 Not-Affected

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