Skip to main content

Linux Kernel CVE-2026-89915

| EUVDEUVD-2026-80515 CRITICAL
2026-09-16 Linux GHSA-crqv-c33h-f779
Critical
Disputed · 9.3 Vendor: Linux
View

Attack ChainAIDerived

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

  1. Access
    Run malicious L1 guest on arm64 nested-virt host
  2. Delivery
    Issue TLB invalidation for VNCR page
  3. Exploit
    Counter gate skips L0 invalidation
  4. Execution
    Stale pseudo-TLB translation persists
  5. Persist
    Access memory via stale mapping
  6. Impact
    Break guest/host isolation (DoS/corruption)

Vulnerability Assessment

Exploitation Conditions

Requires an arm64 host with KVM nested virtualization enabled (FEAT_NV2 / VNCR page support, kernel 6.16+) AND the attacker controlling a running L1 guest that can issue TLB invalidations - this is a guest-to-host (L1-to-L0) boundary crossing, so exploitation is local to the host and requires guest-vCPU privileges, contradicting the vendor's PR:N. Limiting factors: the affected feature is nested virtualization, which is off by default and deployed on only a small subset of arm64 KVM hosts; the missed-invalidation window is opportunistic and mapping-state-dependent, making reliable weaponization into cross-boundary read/write timing-sensitive rather than deterministic.

Impact

The vendor CVSS of 9.3 (AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) substantially overstates real-world risk. This is a KVM arm64 nested-virtualization bug: a VM-wide counter tracking whether an L1-provided VNCR page is fixmap-mapped in L0 was used to gate TLB invalidation, causing MISSED invalidations (the commit explicitly notes an L1 vCPU invalidating its own TLB commonly fails to invalidate the VNCR pseudo-TLB). Key conflicts with the vendor vector: PR:N is implausible - exploitation requires the attacker to control a running L1 guest vCPU under a nested-virt-enabled host, which is at minimum PR:L; and AC:L is questionable because turning a missed invalidation (stale translation) into a concrete cross-boundary confidentiality/integrity impact is timing- and layout-dependent (AC:H). S:C (guest→host / L1→L0 boundary) is the one clearly-correct escalation metric. The C:H/I:H/A:H triad is overstated: the dominant realistic outcome is stale-TLB-driven denial of service or memory-isolation corruption, with cross-guest information disclosure plausible but not demonstrated. No EPSS, no KEV, and no public exploit code accompany this entry, and there is no SSVC decision data - no signal of automatable or in-the-wild exploitation. Net: a genuine host-security correctness bug worth patching on affected hosts, but its true risk is gated hard by the rarity of arm64 nested virtualization, not the 9.3 headline.

Exploit ScenarioDerived

On an arm64 host running KVM nested virtualization (FEAT_NV2), a malicious or compromised L1 guest performs TLB invalidations that the flawed VNCR mapping counter causes L0 to skip, leaving stale VNCR pseudo-TLB translations valid. The L1/L2 guest then reads or writes through the stale mapping, breaking memory isolation and potentially corrupting host/guest state or leaking data. No public exploit code is identified at time of analysis; realistic exploitation is timing- and layout-sensitive and confined to nested-virt hosts.

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

Missed TLB invalidations in the arm64 KVM nested-virtualization path of the Linux kernel can leave stale translations for an L1-supplied VNCR page in L0, allowing a guest with control of an L1 vCPU on an arm64 host to cross the guest-to-host boundary in a timing-sensitive way. Affected systems are those running kernel 6.16 or later with arm64 nested virtualization (FEAT_NV2 / VNCR page support) enabled and exposed to a guest; the flaw is a guest-to-host (L1-to-L0) issue, so exploitation requires guest-vCPU privileges and is local to the host, which contradicts the vendor's PR:N vector. Vendor-released patches exist in Linux 6.18.52, 7.2.5, and 7.3-rc1, and no public exploit code has been identified at time of analysis; the vendor's CVSS of 9.3 substantially overstates real-world risk given that nested virtualization is off by default and deployed on only a small subset of arm64 KVM hosts, and the missed-invalidation window is opportunistic and mapping-state dependent rather than deterministic.

RemediationAI

Vendor-released patch: upgrade to Linux 6.18.52, 7.2.5, or 7.3-rc1 (or a later release containing the corresponding fix), or backport the upstream stable commits 5453b85c7ebb605febac3df42021f9471663f051, 87c2bbf189829dce4aaada8f82e3d54ccc037976, and c55bc773b6e814406658fae7dc5c15f639ed816e, which remove the VM-wide VNCR mapping counter and restore unconditional TLB invalidation semantics; the change is small and correctness-restoring, with the only expected side effect being a modest increase in TLB flush work on nested setups. Because the entire attack surface is arm64 nested virtualization, the most effective compensating control is to disable nested virtualization on arm64 KVM hosts - do not expose the NV/NV2 feature to untrusted L1 guests and refuse to run untrusted workloads as an L1 hypervisor - accepting the trade-off that legitimate nested-VM use cases become unavailable; this removes the vulnerable code path rather than merely reducing its reachability. Restricting KVM access so that only trusted administrative principals can launch L1 guests also reduces exposure but does not mitigate a compromised or malicious guest already running as L1. Generic mitigations such as network filtering or unprivileged-user restrictions are not applicable here, since the issue is a guest-to-host boundary defect reachable through the hypervisor call interface rather than a network service. Verify post-upgrade that the kernel reports the patched version with uname -r and re-test nested guests before re-enabling the feature in production; consult the NVD entry (https://nvd.nist.gov/vuln/detail/CVE-2026-89915) and the referenced git.kernel.org stable commits for backport guidance.

Affected VersionsENISA

Linux 6.16
Linux 4ffa72ad8f37e73bbb6c0baa88557bcb4fd39929 <87c2bbf189829dce4aaada8f82e3d54ccc037976
Linux patch: 0
Linux 4ffa72ad8f37e73bbb6c0baa88557bcb4fd39929 <5453b85c7ebb605febac3df42021f9471663f051
Linux 4ffa72ad8f37e73bbb6c0baa88557bcb4fd39929 <c55bc773b6e814406658fae7dc5c15f639ed816e
Linux patch: 7.2.5
Linux patch: 7.3-rc1
Linux patch: 6.18.52

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

The kernel's arm64 KVM implementation supports nested virtualization via FEAT_NV2, in which an L1 hypervisor supplies a VNCR (Virtual Nested Control Register) page that L0 maps into its own fixmap so that guest register state can be accessed directly. A global VM-wide counter tracked how many CPUs currently had that VNCR page mapped in L0, and TLB-invalidation handling consulted the counter to decide whether a flush of the VNCR pseudo-TLB was necessary. As the upstream commit explains, the counter is a flawed proxy for the actual invalidation requirement: a mapping in L0 is only an opportunistic consequence of the TLB state, so gating invalidation on the counter can skip flushes that are in fact required, and an L1 vCPU invalidating its own TLB - the most likely case - will not succeed because the page is not mapped in L0 at that moment. The fix removes the counter entirely rather than trying to repair it, treating the tracking as a broken performance optimisation that fails to deliver the minimum correctness guarantees; the affected code is the KVM/arm64 nested-virtualization subsystem reached through the kernel's virtualization interfaces. The broad CPE identifier cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:* reflects a core-kernel component rather than a separately packaged userspace product. No CWE was assigned by the vendor; the root cause class is an incomplete/incorrect invalidation logic error in translation-cache maintenance, whose security consequence is stale-translation exposure (tagged as Information Disclosure) rather than a direct memory-corruption 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 (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 7.0 HIGH

Local guest vCPU access (AV:L, PR:L), missed invalidation is opportunistic/timing-dependent to weaponize (AC:H), L1→L0 crossing (S:C); DoS-dominant with bounded stale-TLB leak/corruption (C:L/I:L/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 HIGH
AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
Red Hat 5.5 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: Remove VM-wide VNCR mapping counter

The global VNCR mapping counter is used to decide whether an L1 provided VNCR page is mapped in L0 on any CPU at the point of dealing with a TLB invalidation. It is incremented when a mapping is made in the fixmap, and decremented when unmapped.

As it turns out, this tracking has several flaws:

  • we are trying to invalidate TLBs, and the mapping is only an

opportunistic consequence of the TLB. Checking this counter to decide whether a TLB needs to be invalidated may result in missed invalidations.

  • an L1 vcpu invalidating its own TLB (a very likely case) will not

succeed in invalidating the VNCR pseudo TLB because that page is not mapped in L0 at this stage.

Given that this tracking fails at delivering the minimum guarantees that are required and is only a performance optimisation, remove it completely.

Executive ViewAI

Why It Matters

A critical flaw in the Linux kernel's arm64 KVM nested-virtualization path could allow a guest that controls an L1 vCPU to cross the guest-to-host boundary on affected hosts, potentially compromising host confidentiality and integrity. The risk is concentrated on a small subset of arm64 KVM hosts where nested virtualization (FEAT_NV2/VNCR) is enabled and exposed to guests, as it is off by default; no public exploit identified at time of analysis and the vendor's CVSS overstates real-world exposure. Leadership should prioritize patching these specific systems to prevent a potential boundary breach while avoiding broad disruption.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Low
arm64 KVM nested virtualization (FEAT_NV2) is very new and rarely deployed
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
High

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.

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-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