CVE-2026-53277: ARM64 KVM SRCU Synchronization Race Condition (CVSS 8.8)
CVE-2026-53277 is a synchronization bug in the Linux kernel's KVM (Kernel-based Virtual Machine) hypervisor for ARM64 systems. The vulnerability occurs when certain hypervisor operations that walk guest page tables fail to hold a required kernel lock (SRCU) that protects against concurrent memory slot changes. An attacker with local access and low privileges could exploit this race condition to cause memory corruption, information disclosure, or denial of service across privilege boundaries, including from a guest VM context into the host kernel.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.8 HIGH · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
- Weaknesses (CWE)
- CWE-662, CWE-820
- Affected products
- 7 configuration(s)
- Published / Modified
- 2026-06-25 / 2026-07-15
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Take the SRCU lock for page table walks in fault injection and AT emulation walk_s1() and kvm_walk_nested_s2() expect to be called while holding kvm->srcu to guard against memslot changes. While this is generally the case, __kvm_at_s12() and __kvm_find_s1_desc_level() call into the respective walkers without taking kvm->srcu. Fix by acquiring kvm->srcu prior to the table walk in both instances.
6 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The Linux kernel's KVM ARM64 implementation provides functions walk_s1() and kvm_walk_nested_s2() for traversing guest page tables during fault injection and Address Translation (AT) instruction emulation. These walkers are designed to be called while holding kvm->srcu (a reader-writer lock variant) to prevent unsafe access during memslot reconfiguration. However, two call sites—__kvm_at_s12() and __kvm_find_s1_desc_level()—invoke these walkers without acquiring the SRCU lock, creating a window where concurrent memslot updates can invalidate page table state mid-walk. This violates the locking contract and allows use-after-free or out-of-bounds memory access. The fix is straightforward: wrap the affected walker invocations with kvm_srcu_read_lock() and kvm_srcu_read_unlock() pairs.
Business impact
For organizations running KVM-based virtualization on ARM64 platforms (common in cloud deployments, edge computing, and ARM server environments), this vulnerability creates a cross-boundary attack vector. A malicious or compromised guest VM can trigger a kernel panic, corrupt host memory, or read sensitive host kernel data. In shared tenancy or multi-tenant environments, this could enable guest-to-host escape or lateral movement between VMs on the same physical host. The severity is amplified in production datacenters and managed service providers relying on ARM64 KVM for containerization or VM hosting.
Affected systems
Any Linux kernel version with KVM ARM64 hypervisor support is potentially affected. The vulnerability resides in code paths specific to ARM64 virtualization, so x86-64 or other architecture KVM implementations are not impacted. Systems running kernels with the vulnerable code patterns in __kvm_at_s12() or __kvm_find_s1_desc_level() without the fix are at risk. Verify the exact affected kernel versions against the Linux kernel security advisory and your distribution's patch tracking.
Exploitability
Exploitation requires local access to the system and the ability to execute code in a guest VM context (CVSS metric PR:L). No special user interaction is needed, and the attack is reliable once the race condition is triggered. The difficulty lies in reliably hitting the timing window, but the consequences—memory corruption across isolation boundaries—are severe. This is not yet known to be exploited in the wild (KEV status: false), but the technical barrier to weaponization is moderate; a motivated attacker with guest access can craft a reproducible exploit by repeatedly invoking the affected hypervisor instructions while triggering memslot changes from a separate thread.
Remediation
The fix involves adding SRCU lock acquisition around the page table walker calls in two locations. Organizations must apply the patched kernel version once released by their Linux distribution. Verify the specific kernel version or patch commit hash in your vendor's security advisory. For systems where immediate patching is not feasible, restrict guest VM creation and management to trusted users only, and monitor for suspicious hypervisor instruction sequences (AT instructions combined with memslot manipulations).
Patch guidance
1. Check your Linux distribution's security advisory for the patched kernel version addressing CVE-2026-53277. 2. For RHEL/CentOS, Debian/Ubuntu, and other distributions, obtain the kernel package from the official update channel. 3. Test the patched kernel in a non-production environment before rolling out to production hypervisors. 4. Reboot the host to load the new kernel; VMs will not migrate gracefully across kernel versions in all scenarios, so plan downtime or use live migration carefully. 5. Verify the fix is in place by checking kernel logs or git history for commits addressing SRCU locking in __kvm_at_s12() or __kvm_find_s1_desc_level(). Exact patch version numbers must be verified against the vendor advisory.
Detection guidance
1. Monitor kernel logs (dmesg, journalctl) for SRCU-related warnings or page fault panics on ARM64 KVM hosts. 2. Use perf or tracing tools to profile AT instruction emulation calls and memslot updates; correlated spikes may indicate active exploitation. 3. Set up kernel ASAN or KASAN (Kernel Address Sanitizer) in test environments to catch use-after-free during page table walks. 4. Review hypervisor event logs for unusual frequency of nested page table faults or instruction emulation events. 5. Implement integrity monitoring on host kernel memory and guest-accessible memory regions to detect corruption patterns. 6. Check system uptime and reboot history for unexpected crashes; the vulnerability may manifest as hard-to-reproduce kernel panics.
Why prioritize this
This vulnerability rates HIGH (CVSS 8.8) due to its combination of cross-boundary impact (S:C), high confidentiality/integrity/availability impact (C:H/I:H/A:H), and low attack complexity. While it requires local access, KVM environments often grant users or guest VMs significant execution privileges. The lack of current KEV exploitation does not diminish urgency; ARM64 KVM adoption is growing, and the technical simplicity of the fix suggests patches will roll out quickly, followed by public disclosure. Affected ARM64 hypervisor deployments should prioritize this within their patch management window, especially if hosting untrusted guest workloads.
Risk score, explained
The CVSS:3.1 score of 8.8 (HIGH) reflects: (1) Local Attack Vector (AV:L): attacker needs code execution on the host or inside a guest; (2) Low Attack Complexity (AC:L): the race condition is readily triggered; (3) Low Privilege Required (PR:L): guest or low-privileged host user can trigger it; (4) No User Interaction (UI:N): fully automated; (5) Changed Scope (S:C): the impact crosses from guest/user boundary into kernel/host; (6) High C/I/A impact: memory corruption can leak secrets, modify kernel state, or crash the system. The score would be CRITICAL if remote exploitation were possible, but local/guest execution is required.
Frequently asked questions
Does this affect my x86-64 KVM systems?
No. CVE-2026-53277 is specific to the ARM64 KVM implementation. x86-64 hypervisors use different page table walking code and do not contain the vulnerable __kvm_at_s12() or __kvm_find_s1_desc_level() functions.
Can a guest VM escape to the host kernel without additional vulnerabilities?
This vulnerability provides a memory corruption primitive (use-after-free, out-of-bounds access) that a sophisticated attacker could chain with other kernel weaknesses to achieve escape. However, it is not a standalone escape on its own. Treating it as part of a broader attack surface is prudent.
If I don't run nested KVM (VM inside a VM), am I protected?
Nested KVM is one attack surface, but the vulnerable functions are also called during standard fault injection and AT instruction emulation for non-nested guests. Both nested and non-nested KVM deployments should patch.
What should I do if I cannot patch immediately?
Implement strict access controls to limit who can create or manage guest VMs. Disable nested KVM if not required. Isolate ARM64 KVM hosts from untrusted network traffic and enforce strong authentication for guest access. Prioritize patching within 30 days; this is not currently exploited in the wild, but the window may narrow as public details emerge.
This analysis is for informational purposes and reflects the state of information as of the published and modified dates. Patch version numbers and exact affected kernel versions must be verified against official Linux distribution security advisories. No exploit code or weaponized proof-of-concept is provided. Organizations should validate compatibility and perform testing before deploying patches to production systems. This vulnerability is not currently listed in CISA's Known Exploited Vulnerabilities (KEV) catalog, but status may change. Consult your vendor's official security guidance for the most current remediation steps. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-53153HIGHLinux Kernel Memory Corruption in memcg List Management (CVSS 7.8)
- CVE-2026-0270HIGHCortex XSOAR Path Traversal on Linux — Exploit Requirements & Patching Guide
- CVE-2026-0271HIGHPalo Alto Networks Prisma Access Agent Linux Privilege Escalation
- CVE-2026-10001HIGHChrome Sandbox Escape via PerformanceManager Use-After-Free
- CVE-2026-10002HIGHGoogle Chrome PDFium Use-After-Free Vulnerability (CVSS 8.8)
- CVE-2026-10003HIGHChrome Use-After-Free Code Execution Vulnerability Analysis
- CVE-2026-10006HIGHChrome WebAudio Race Condition Remote Code Execution
- CVE-2026-10007HIGHChrome Use-After-Free in SVG Arbitrary Code Execution (CVSS 8.8)