CVE-2026-64310 Overview
CVE-2026-64310 is a Linux kernel vulnerability in the AMD Cryptographic Co-Processor (CCP) driver related to Secure Encrypted Virtualization (SEV) ioctl handling. The flaw stems from sev_move_to_init_state() unnecessarily initializing Secure Nested Paging (SNP) when servicing SEV-only ioctls such as SEV_PEK_GEN, SEV_PDH_GEN, SEV_PEK_CSR, SEV_PEK_CERT_IMPORT, and SEV_PDH_CERT_EXPORT. A userspace process invoking these /dev/sev ioctls could clear MSR_VM_HSAVE_PA globally. The next VMRUN on an active Kernel-based Virtual Machine (KVM) guest could then trigger a general protection fault and crash the host.
Critical Impact
A local process with access to /dev/sev can potentially destabilize the host kernel while KVM guests are running.
Affected Products
- Linux kernel builds including the AMD CCP driver with SEV support
- Hosts running KVM guests on AMD platforms with SEV/SNP capability
- Distributions shipping the pre-patch drivers/crypto/ccp/sev.c code path
Discovery Timeline
- 2026-07-25 - CVE-2026-64310 published to NVD
- 2026-07-25 - Last updated in NVD database
Technical Details for CVE-2026-64310
Vulnerability Analysis
The AMD Secure Encrypted Virtualization (SEV) subsystem exposes firmware commands to userspace through /dev/sev ioctls. Before executing certain commands, the kernel calls sev_move_to_init_state() to bring the platform into an initialized state. This helper initialized both SEV and SNP firmware, followed by SEV_SHUTDOWN after the command completed.
SNP initialization has a side effect on the host: it zeroes MSR_VM_HSAVE_PA on every CPU as part of preparing the SNP state. MSR_VM_HSAVE_PA holds the physical address where the CPU saves host state during a VMRUN transition. Clearing this register while KVM is running normal virtual machines leaves those guests without a valid host-save area.
When a subsequent VMRUN executes for a running guest, the CPU raises a general protection fault. This fault occurs in host context and can panic the kernel. Ioctls affected include SEV_PEK_GEN, SEV_PDH_GEN, SEV_PEK_CSR, SEV_PEK_CERT_IMPORT, and SEV_PDH_CERT_EXPORT, none of which require SNP.
Root Cause
The root cause is scope mismatch in initialization. sev_move_to_init_state() initialized SNP firmware for operations that only require SEV firmware. The SNP initialization path unconditionally clears MSR_VM_HSAVE_PA, disrupting KVM guests that rely on this register for the VMRUN state save.
A secondary defect: the previous code discarded the underlying firmware error and returned a hardcoded INVALID_PLATFORM_STATE, obscuring real failure conditions from userspace callers.
Attack Vector
A local user or process with permission to open /dev/sev can issue any of the affected ioctls. If SEV initialization fails while KVM guests are active, the SNP initialization side effect zeros MSR_VM_HSAVE_PA. The next guest VMRUN faults, potentially crashing the host. This is a local denial-of-service condition against the hypervisor.
No verified proof-of-concept code is publicly available. See the upstream commits linked below for the technical fix details.
Detection Methods for CVE-2026-64310
Indicators of Compromise
- Unexpected host kernel panics or general protection faults referencing VMRUN or SVM code paths on AMD hosts running KVM
- Kernel log entries showing SEV firmware errors followed by KVM guest crashes
- Processes with no legitimate SEV management role opening /dev/sev and issuing SEV_PEK_GEN, SEV_PDH_GEN, SEV_PEK_CSR, SEV_PEK_CERT_IMPORT, or SEV_PDH_CERT_EXPORT
Detection Strategies
- Audit /dev/sev access using Linux Audit rules on the device node to log which UIDs and processes invoke SEV ioctls
- Correlate SEV ioctl activity with subsequent KVM guest crashes or host GPFs within short time windows
- Track kernel version and patch state across AMD KVM hosts to identify unpatched systems
Monitoring Recommendations
- Monitor dmesg and journalctl -k for ccp and sev subsystem errors on AMD hosts
- Alert on any non-baseline user or service accessing /dev/sev
- Watch for repeated SEV_SHUTDOWN sequences combined with KVM instability
How to Mitigate CVE-2026-64310
Immediate Actions Required
- Apply the upstream Linux kernel patches referenced by commits 5181e88, 9e983d0, d512077, and fb1758e7
- Restrict /dev/sev device permissions so only trusted management processes can issue SEV ioctls
- Track distribution security advisories for backported fixes
Patch Information
The fix modifies sev_move_to_init_state() to call __sev_platform_init_locked() for SEV-only ioctls, which initializes only the SEV firmware and skips SNP initialization. Because SNP is never initialized, MSR_VM_HSAVE_PA is not cleared and running KVM guests remain stable. The patch also surfaces the underlying firmware error instead of returning a hardcoded INVALID_PLATFORM_STATE. Calling __sev_firmware_shutdown() remains safe because __sev_snp_shutdown_locked() skips SNP shutdown when SNP was never initialized.
Workarounds
- Limit access to /dev/sev via file permissions or a Mandatory Access Control (MAC) policy such as SELinux or AppArmor until the kernel is patched
- Avoid running SEV certificate or key management commands (SEV_PEK_GEN, SEV_PDH_GEN, SEV_PEK_CSR, SEV_PEK_CERT_IMPORT, SEV_PDH_CERT_EXPORT) on hosts with active KVM guests
- Schedule SEV firmware operations during maintenance windows when no guests are running
# Restrict /dev/sev access to a dedicated management group
sudo groupadd sev-admin
sudo chown root:sev-admin /dev/sev
sudo chmod 660 /dev/sev
# Verify installed kernel version includes the fix
uname -r
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

