Full Report
A new flaw in the Linux kernel's KVM virtualization code for ARM64 processors can leave a freed piece of host memory exposed to a guest virtual machine on hosts with nested virtualization enabled. The bug, tracked as CVE-2026-89775, allows a guest to read and write host kernel memory, and the researcher who found it says it can be used to escape the guest and run code on the host machine.
Analysis Summary
# Vulnerability: Linux Kernel ARM64 KVM Guest-to-Host Escape
## CVE Details
- **CVE ID:** CVE-2026-89775
- **CVSS Score:** 7.8 to 9.3 (Severity: High/Critical)
- **CWE:** CWE-404 (Improper Resource Shutdown or Release) / CWE-416 (Use After Free related context)
## Affected Systems
- **Products:** Linux Kernel (ARM64 architecture)
- **Versions:** Affected from version 6.17 through various 7.x releases prior to patches. (Code present since 6.16, but exploitability begins at 6.17).
- **Configurations:**
- Requires **ARM64** processors.
- Requires **Nested Virtualization** to be enabled (experimental boot-time mode).
- Requires hardware with **Armv8.4+** and the **FEAT_NV2** feature.
- Local systems where `/dev/kvm` is accessible to non-privileged users (e.g., RHEL 10 default).
## Vulnerability Description
The flaw exists in the KVM virtualization code for ARM64 when handling nested virtualization. A guest can manipulate its memory arrangement to cause a size calculation to result in zero. This leads the kernel to skip a critical **TLB (Translation Lookaside Buffer) invalidation** step. Consequently, a page of host memory that has been freed remains mapped and writable by the guest. The guest can then perform 64-bit read/write operations on host kernel memory without triggering hardware traps.
## Exploitation
- **Status:** PoC available (disclosed by researcher Hyunwoo Kim), but not yet observed exploited in the wild.
- **Complexity:** Medium (Requires specific memory manipulation and hardware features).
- **Attack Vector:** Local (Must be a guest VM user or a local user with access to `/dev/kvm`).
## Impact
- **Confidentiality:** High (Full read access to host kernel memory).
- **Integrity:** High (Full write access to host kernel memory; guest-to-host escape).
- **Availability:** High (Ability to crash the host or execute arbitrary code).
## Remediation
### Patches
The vulnerability is fixed in the following mainline Linux kernel versions:
- **Linux 6.18.51**
- **Linux 7.2.5**
- **Linux 7.3-rc1**
**Distribution Status:**
- **Ubuntu:** Vulnerable in 26.04; 24.04 HWE kernels (6.17, 7.0) are vulnerable.
- **RHEL:** Version 10 is affected.
- **Amazon Linux:** AL2023 (kernel 6.18) fix is pending.
- **Debian:** Fixed in sid (7.2.6-1).
### Workarounds
- **Disable Nested Virtualization:** Since this feature is off by default on ARM64 and requires an experimental boot-time flag, ensuring it remains disabled mitigates the attack vector entirely.
- **Restrict Access:** Limit access to `/dev/kvm` to trusted users only to prevent local unprivileged users from creating malicious guests.
## Detection
- **Indicators of Compromise:** Unusual guest activity involving direct host memory access or unexpected host kernel crashes.
- **Detection methods:** Audit kernel boot parameters for `kvm-arm.mode=nested` (or equivalent flags enabling FEAT_NV2). Monitor for unauthorized access to the KVM device.
## References
- **Vendor Advisories:**
- Red Hat: hxxps://access[.]redhat[.]com/security/cve/cve-2026-89775
- Ubuntu: hxxps://ubuntu[.]com/security/CVE-2026-89775
- Debian: hxxps://security-tracker[.]debian[.]org/tracker/CVE-2026-89775
- **Researcher Disclosure:** hxxps://www[.]openwall[.]com/lists/oss-security/2026/09/16/14