CVE-2026-89918 Overview
CVE-2026-89918 is a vulnerability in the Linux kernel's KVM arm64 subsystem affecting Translation Lookaside Buffer Invalidate (TLBI) by Virtual Address (VA) handling. The flaw arises from an address rollover condition when the target range represents the last page or block in the TTBR1 VA space. The comparison logic in the TLB invalidation code adds a base address to a size value, which wraps to zero at the top of the address space. This causes the invalidation to silently fail, leaving stale translations in the TLB. The bug affects virtualization workloads running on arm64 hosts.
Critical Impact
A local attacker on an arm64 KVM host could leverage stale TLB entries to break guest isolation, escalate privileges, or access memory across confidentiality, integrity, and availability boundaries.
Affected Products
- Linux kernel with KVM support on arm64 architecture
- Guest virtual machines hosted on affected kernels
- Distributions shipping the vulnerable KVM arm64 TLBI implementation
Discovery Timeline
- 2026-09-16 - CVE-2026-89918 published to NVD
- 2026-09-16 - Last updated in NVD database
Technical Details for CVE-2026-89918
Vulnerability Analysis
The Linux kernel's KVM arm64 code performs TLB invalidation by comparing two address ranges. One range is defined by the TLB entry, and the other by the TLBI instruction. Each range is described by a start address and a size. The comparison computes base + size to derive an exclusive end address. When this end address represents the final page or block of the TTBR1 VA space, the arithmetic wraps around to zero. The resulting comparison fails, and the intended TLB entry is not invalidated. Stale translations then persist in the TLB, breaking the guarantees the hypervisor relies on to isolate guest memory mappings from stage-2 page table changes.
Root Cause
The root cause is a boundary condition error (integer overflow) in the range comparison logic used by KVM arm64 TLBI-by-VA operations. The code treats the end address as exclusive using start + size, without accounting for address rollover at the top of the 64-bit virtual address space. The fix rewrites the comparison to make the end address inclusive, avoiding the wraparound. The corrected helper is shared between VA and Intermediate Physical Address (IPA) invalidation paths, per the patch commit message.
Attack Vector
Exploitation requires local access on an arm64 host running KVM. A privileged guest or a co-located workload could trigger operations that rely on TLB invalidation at the extreme end of the TTBR1 VA range. Because the invalidation silently fails, stage-2 translation changes are not reflected in the TLB. This can enable a guest to retain access to memory that should have been revoked, undermining hypervisor isolation. No user interaction is required, and the scope crosses the guest-host boundary.
No public exploit code is available. Technical details are documented in the upstream kernel commits referenced in the Kernel Git Commit Update.
Detection Methods for CVE-2026-89918
Indicators of Compromise
- Unexpected guest-to-host memory access patterns on arm64 KVM hosts observed through hypervisor telemetry.
- Kernel warnings or KVM subsystem errors related to stage-2 page table operations or TLB maintenance.
- Anomalous behavior from guest VMs performing operations near the top of the TTBR1 virtual address range.
Detection Strategies
- Inventory arm64 hosts and confirm the running kernel version against the patched commits 34af2c3e31f9, c624731ca6fe, and ce447651a52e.
- Monitor kernel logs for KVM arm64 fault handling anomalies and unexpected stage-2 translation faults.
- Correlate VM lifecycle events with host kernel warnings to identify guests attempting boundary-condition memory operations.
Monitoring Recommendations
- Enable auditd rules for kernel module loads and hypervisor configuration changes on arm64 KVM hosts.
- Ingest host kernel logs into a centralized analytics platform to detect KVM subsystem errors at scale.
- Track guest workload behavior for privilege escalation attempts or unusual cross-VM memory access.
How to Mitigate CVE-2026-89918
Immediate Actions Required
- Apply the upstream Linux kernel patches referenced in the kernel.org stable commits 34af2c3e31f9, c624731ca6fe, and ce447651a52e.
- Prioritize patching arm64 hypervisor hosts running untrusted or multi-tenant KVM guests.
- Restrict local and guest access on unpatched arm64 KVM hosts until updates are deployed.
Patch Information
The fix is committed to the mainline and stable Linux kernel trees. It rewrites the TLBI range comparison to use an inclusive end address and consolidates VA and IPA invalidation into a shared helper. Reference commits: 34af2c3e31f9, c624731ca6fe, and ce447651a52e. Consult your Linux distribution vendor for backported package updates.
Workarounds
- No official workaround exists; patching is the only reliable remediation.
- Reduce exposure by limiting the number of untrusted tenants sharing an arm64 KVM host.
- Consider migrating critical workloads to patched hosts or non-affected architectures until updates are applied.
# Verify running kernel version on arm64 KVM hosts
uname -rm
# Check for the patched commits in the running kernel source (distribution-specific)
# Example for Debian/Ubuntu:
apt-get changelog linux-image-$(uname -r) | grep -iE '34af2c3e|c624731c|ce447651'
# Reboot into the patched kernel after installation
sudo reboot
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

