CVE-2026-74607 Overview
CVE-2026-74607 is a race condition in the Linux kernel's KVM (Kernel-based Virtual Machine) SVM (Secure Virtual Machine) subsystem. The flaw affects the AMD Secure Encrypted Virtualization (SEV) mirror virtual machine handling code. Concurrent use of the KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM and KVM_CAP_VM_COPY_ENC_CONTEXT_FROM capabilities can corrupt the owner VM's mirror_vms list. A second race in sev_vm_destroy() can cause kvm_put_kvm() to be called on the wrong VM when sev->enc_context_owner changes mid-operation.
Critical Impact
A local attacker with permission to issue KVM ioctls can trigger memory corruption or reference-count errors in the kernel, leading to privilege escalation, host compromise, or denial of service.
Affected Products
- Linux kernel builds with CONFIG_KVM_AMD_SEV enabled
- Systems exposing /dev/kvm to unprivileged or semi-privileged workloads
- Distributions shipping upstream KVM SVM support prior to the referenced fix commits
Discovery Timeline
- 2026-08-22 - CVE-2026-74607 published to NVD
- 2026-08-25 - Last updated in NVD database
Technical Details for CVE-2026-74607
Vulnerability Analysis
The vulnerability resides in the SEV code path that manages relationships between an owner VM and its mirror VMs. When sev_migrate_from() runs with a mirror as the destination, it relocates the mirror entry from the source VM's list into the owner's mirror_vms list. This modification occurs without acquiring the owner's lock. Other writers, including sev_vm_copy_enc_context_from() and sev_vm_destroy(), do hold that lock, so a concurrent COPY or destroy operation can corrupt the list.
A second defect exists in sev_vm_destroy(). The owner VM remains active during destruction of a mirror and can concurrently receive a KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM request. That request mutates sev->enc_context_owner, causing kvm_put_kvm() to run against the wrong struct kvm.
Root Cause
The root cause is inconsistent locking discipline across writers to the owner VM's mirror list. sev_migrate_from() skipped the owner lock, breaking the invariant enforced elsewhere. Fixing this under the owner lock is complicated because the owner can disappear between the pointer read and the lock acquisition. Placing struct kvm under SLAB_TYPESAFE_BY_RCU would allow kvm_get_kvm_safe() inside an RCU critical section, but the maintainers rejected that complexity. The applied fix introduces a dedicated global leaf lock to serialize accesses to the owner and mirror list.
Attack Vector
Exploitation requires local access with the ability to open /dev/kvm and issue the affected ioctls. An attacker running multiple threads can race COPY, MOVE, and destroy operations on encrypted contexts to corrupt the mirror list or trigger an incorrect kvm_put_kvm(). The resulting use-after-free or reference imbalance can be leveraged for kernel memory corruption and host privilege escalation. No user interaction is required, and the scope is changed because the flaw crosses VM security boundaries.
See the upstream fix commits for implementation details: Linux Kernel Commit 1d78d33, Linux Kernel Commit 28afde1, and Linux Kernel Commit 328ab4f.
Detection Methods for CVE-2026-74607
Indicators of Compromise
- Unexpected kernel oops or general protection fault messages referencing sev_migrate_from, sev_vm_destroy, or sev_vm_copy_enc_context_from in dmesg.
- KASAN or list-debug warnings implicating the mirror_vms list under arch/x86/kvm/svm/sev.c.
- Unexplained VM termination combined with reference-count anomalies on struct kvm objects.
Detection Strategies
- Audit process activity that opens /dev/kvm and issues KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM or KVM_CAP_VM_COPY_ENC_CONTEXT_FROM from non-hypervisor processes.
- Correlate concurrent ioctl bursts from the same PID or cgroup with subsequent kernel warnings.
- Compare running kernel version and build ID against distribution advisories that reference the fix commits.
Monitoring Recommendations
- Forward dmesg, auditd, and journalctl -k output to a centralized logging pipeline and alert on KVM subsystem faults.
- Monitor for reboots or hypervisor host crashes affecting SEV-enabled workloads.
- Track ioctl syscall telemetry on virtualization hosts to baseline legitimate hypervisor activity.
How to Mitigate CVE-2026-74607
Immediate Actions Required
- Apply the latest stable Linux kernel update from your distribution that incorporates the referenced KVM SVM locking fix.
- Restrict access to /dev/kvm to trusted virtualization services and users only.
- On hosts that do not require AMD SEV, disable the feature by booting with kvm_amd.sev=0.
Patch Information
The fix serializes accesses to the owner VM and its mirror list with a dedicated global lock. Backports are available across stable trees in commits 1d78d33, 28afde1, 328ab4f, 47976ea, 7943ec3, and d728bab. See Linux Kernel Commit 47976ea, Linux Kernel Commit 7943ec3, and Linux Kernel Commit d728bab for backport candidates.
Workarounds
- Disable AMD SEV on hosts that do not run confidential VMs by setting kvm_amd.sev=0 at boot.
- Remove /dev/kvm access from untrusted local users via group permissions or Linux Security Module policy.
- Avoid running workloads that exercise KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM and KVM_CAP_VM_COPY_ENC_CONTEXT_FROM on unpatched kernels.
# Verify kernel version and SEV status
uname -r
cat /sys/module/kvm_amd/parameters/sev
# Disable SEV at boot (GRUB) if not required
# Append to GRUB_CMDLINE_LINUX in /etc/default/grub:
kvm_amd.sev=0
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# Restrict /dev/kvm to the kvm group only
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.

