Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-43214

CVE-2026-43214: Linux Kernel Privilege Escalation Flaw

CVE-2026-43214 is a privilege escalation vulnerability in the Linux kernel affecting KVM x86 PDPTR register handling. This flaw could allow unauthorized privilege elevation. This article covers technical details, affected versions, impact assessment, and mitigation strategies.

Published:

CVE-2026-43214 Overview

CVE-2026-43214 is a Linux kernel vulnerability in the Kernel-based Virtual Machine (KVM) x86 subsystem. The flaw resides in __get_sregs2(), which reads Page Directory Pointer Table Registers (PDPTRs) without holding Sleepable Read-Copy-Update (SRCU) read-side protection. Reading PDPTRs can trigger access to guest memory through kvm_pdptr_read(), eventually reaching kvm_vcpu_gfn_to_memslot(), which dereferences memslots requiring kvm->srcu or kvm->slots_lock to be held. The issue was discovered by the Linux Verification Center (linuxtesting.org) using Syzkaller fuzzing.

Critical Impact

Improper RCU usage in KVM ioctl path produces lockdep warnings and risks unsafe memslot dereferences when only vcpu->mutex is held during PDPTR reads.

Affected Products

  • Linux kernel x86 KVM subsystem (arch/x86/kvm/x86.c)
  • Linux kernel 6.12.59 confirmed in the reported lockdep trace
  • Distributions shipping affected stable kernels prior to the fix commits

Discovery Timeline

  • 2026-05-06 - CVE-2026-43214 published to NVD
  • 2026-05-06 - Last updated in NVD database

Technical Details for CVE-2026-43214

Vulnerability Analysis

The vulnerability is a missing-lock condition in the KVM x86 vCPU ioctl handler. When userspace invokes the KVM_GET_SREGS2 ioctl, the kernel calls __get_sregs2() to populate the special registers structure, including PDPTRs used for 32-bit Physical Address Extension (PAE) paging. The PDPTR read path can lazily reload values from guest memory, which requires walking the memslot array protected by SRCU.

At the call site, only vcpu->mutex is held. The memslot dereference path uses srcu_dereference_check() and expects either kvm->srcu or kvm->slots_lock. The mismatch causes a suspicious RCU usage warning from lockdep and exposes memslots to unsafe access without SRCU read-side protection.

Root Cause

The call chain kvm_pdptr_read() -> svm_cache_reg() -> load_pdptrs() -> kvm_vcpu_read_guest_page() -> kvm_vcpu_gfn_to_memslot() reaches __kvm_memslots() in include/linux/kvm_host.h:1062. That helper requires SRCU protection, but __get_sregs2() did not enter an SRCU read-side critical section before invoking PDPTR reads.

Attack Vector

A local user with permission to open /dev/kvm and issue ioctls on a vCPU file descriptor can trigger the path through KVM_GET_SREGS2. The Syzkaller reproducer issues kvm_vcpu_ioctl from an unprivileged process inside a virtualization-enabled host. The vulnerability manifests during normal vCPU register query operations on guests using PAE paging on AMD SVM hosts.

No synthetic exploit code is provided here. Refer to the upstream commits for the exact fix scope and call-site changes.

Detection Methods for CVE-2026-43214

Indicators of Compromise

  • Kernel log entries containing WARNING: suspicious RCU usage in kvm_vcpu_gfn_to_memslot
  • Stack traces referencing __get_sregs2, load_pdptrs, and svm_cache_reg in dmesg
  • Lockdep messages citing include/linux/kvm_host.h:1062 with only &vcpu->mutex held

Detection Strategies

  • Enable CONFIG_PROVE_RCU and CONFIG_LOCKDEP on test kernels to surface the warning during QA
  • Audit running kernel versions against the patched stable releases referenced in git.kernel.org commits
  • Monitor /dev/kvm ioctl activity from non-root processes invoking KVM_GET_SREGS2

Monitoring Recommendations

  • Forward kernel ring buffer events to a centralized logging pipeline and alert on suspicious RCU usage strings
  • Track kernel package versions across virtualization hosts and flag hosts running pre-patch builds
  • Review host audit logs for unexpected processes opening /dev/kvm on production hypervisors

How to Mitigate CVE-2026-43214

Immediate Actions Required

  • Apply the upstream stable kernel updates that add SRCU read-side protection in __get_sregs2()
  • Restrict access to /dev/kvm to trusted users and virtualization service accounts only
  • Rebuild and redeploy custom kernels using the fix commits referenced below

Patch Information

The upstream fix wraps PDPTR reads in __get_sregs2() with an SRCU read-side critical section so memslot dereferences occur under kvm->srcu. Stable backports are available across multiple kernel branches. See the patch commits: 57536ff0a6bd, 708e20c66b27, 95d848dc7e63, 9f2bfea51151, b33f8d816950, and f621ca24f9f4.

Workarounds

  • Limit /dev/kvm permissions through udev rules so only the virtualization group can open the device
  • Disable nested virtualization features that are not required by guest workloads
  • Avoid running untrusted workloads with KVM ioctl access on hosts pending kernel updates
bash
# Verify running kernel and patch presence
uname -r
grep -r "__get_sregs2" /sys/kernel/debug/tracing/ 2>/dev/null

# Restrict /dev/kvm to the kvm group only
ls -l /dev/kvm
sudo chown root:kvm /dev/kvm
sudo chmod 0660 /dev/kvm

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.