Vulnerability Overview
What is CVE-2026-46113
CVE-2026-46113 is a use-after-free vulnerability in the Linux kernel’s KVM (Kernel-based Virtual Machine) module that affects shadow paging operations. The flaw occurs when guest page table modifications trigger improper memory reference handling in the shadow MMU (Memory Management Unit), potentially leading to arbitrary code execution or denial of service on the host system.
This vulnerability is particularly significant because it bridges the isolation boundary between guest and host systems—a critical security perimeter in virtualized environments. An attacker with control over a guest operating system can manipulate page directory entries to cause the host kernel to dereference freed memory, compromising the entire physical server and potentially affecting all co-hosted virtual machines.
Affected Linux Kernel Versions
CVE-2026-46113 affects all Linux kernel versions that implement KVM with shadow paging enabled prior to the security patch. This includes:
- Linux kernel versions 5.x through current releases (specific patch versions vary by distribution)
- All distributions shipping vulnerable kernel versions with KVM enabled
- Both x86-64 and ARM64 architectures where KVM shadow paging is implemented
To determine your specific exposure, check your kernel version using:
uname -r
Then cross-reference against your Linux distribution’s security advisories for CVE-2026-46113 patch availability.
Why Shadow Paging Matters
Shadow paging is a KVM optimization technique that maintains a second set of page tables synchronized with guest page tables. This mechanism:
- Improves performance by reducing VM exits during memory operations
- Provides isolation between guest and host memory spaces
- Enables efficient memory management in virtualized environments
However, shadow paging’s complexity creates potential attack surfaces. When guest page tables change unexpectedly, the shadow paging mechanism must correctly track and update memory references. CVE-2026-46113 exploits a failure in this synchronization process.
Technical Deep Dive
Root Cause: Use-After-Free in Shadow MMU
The vulnerability stems from improper handling of Guest Frame Numbers (GFNs) in the shadow MMU’s reverse mapping (rmap) structure. Here’s the technical sequence:
-
Initial State: KVM creates shadow page tables that mirror guest page tables, maintaining rmap entries that track which shadow pages reference specific guest frames.
-
Trigger Condition: A guest modifies a page directory entry (PDE) while KVM is actively managing that memory region.
-
Computation Failure: The shadow MMU computes a new GFN from the modified PDE. If this GFN falls outside the expected range for that shadow page, the rmap lookup fails.
-
Reference Leak: The old rmap entry is never removed because the lookup couldn’t find it. When the shadow page is invalidated, the stale rmap entry remains.
-
Use-After-Free: Subsequent operations dereference the freed rmap entry, leading to memory corruption or code execution.
How the Vulnerability Triggers
The vulnerability requires specific conditions to manifest:
Necessary Conditions:
- Guest OS must have sufficient privileges to modify page directory entries
- Shadow paging must be active (default in most KVM configurations)
- Memory pressure or specific page table modification patterns must occur
- The modified PDE must map to a GFN outside the shadow page’s expected range
Triggering Sequence:
Guest modifies PDE → KVM detects change → Shadow page created
→ GFN computation returns unexpected value → rmap lookup fails
→ Shadow page invalidation → Use-after-free dereference
Memory Reference Mapping Failure
The rmap structure in KVM maintains bidirectional references between guest frames and shadow pages. When this mapping fails:
- Forward mapping breaks: Shadow pages cannot locate their corresponding guest frames
- Reverse mapping breaks: Guest frames cannot track which shadow pages reference them
- Cleanup fails: Memory cannot be properly freed when pages are invalidated
- Dangling pointers: Freed memory remains referenced in active data structures
This creates a classic use-after-free scenario where the kernel accesses memory that has been deallocated, potentially allowing an attacker to control the contents of that memory region.
Why This Breaks KVM Security
KVM’s security model depends on strict isolation between guest and host:
- Guest code should never execute host code – The use-after-free allows arbitrary memory writes in kernel space
- Guest memory should not access host memory – Exploiting this vulnerability enables host memory access
- Host crashes should not occur from guest actions – Triggering the vulnerability causes kernel panics
- Multi-tenant isolation should be maintained – A compromised guest can affect other VMs on the same host
By breaking these assumptions, CVE-2026-46113 fundamentally undermines KVM’s security guarantees.
Attack Scenarios and Real-World Impact
Arbitrary Code Execution on Host Systems
An attacker with control over a guest operating system can exploit CVE-2026-46113 to execute arbitrary code on the host kernel:
Attack Flow:
- Attacker gains access to guest OS (through application compromise, credential theft, or supply chain attack)
- Attacker crafts specific page table modifications to trigger the use-after-free
- Attacker controls freed memory contents through heap spraying or memory grooming
- Use-after-free dereference executes attacker-controlled code in kernel context
- Attacker achieves full host system compromise with kernel privileges
Real-World Scenario:
A cloud provider hosting customer VMs discovers that a malicious tenant has exploited CVE-2026-46113 to escape their guest and compromise the hypervisor. The attacker now has access to all other customers’ virtual machines on that physical server, including their data and applications.
Denial of Service Attacks
Even without achieving code execution, attackers can weaponize this vulnerability for availability attacks:
- Kernel Panic Triggering: Repeatedly exploit the use-after-free to cause kernel crashes
- Host Unresponsiveness: Trigger memory corruption that freezes the host system
- Cascading Failures: Crash the hypervisor, affecting all co-hosted VMs simultaneously
- Resource Exhaustion: Exploit the vulnerability to leak kernel memory, eventually exhausting available resources
A single malicious guest can take down an entire physical server, affecting dozens of legitimate customers.
Multi-Tenant Environment Risks
CVE-2026-46113 poses extreme risk in shared hosting scenarios:
| Risk Factor | Impact |
|---|---|
| Blast Radius | All VMs on affected host compromised |
| Data Exposure | Access to other tenants’ memory and storage |
| Lateral Movement | Compromised host enables network attacks on other infrastructure |
| Compliance Violations | Data breach affecting multiple customers |
| Reputation Damage | Loss of customer trust and potential legal liability |
Guest-to-Host Privilege Escalation
This vulnerability represents a complete privilege escalation path:
Guest User → Guest Root → Host Kernel → Full System Control
Unlike traditional privilege escalation vulnerabilities that operate within a single OS, CVE-2026-46113 crosses the virtualization boundary—the most critical security perimeter in cloud infrastructure.
Risk Assessment for Your Infrastructure
Severity and CVSS Implications
CVE-2026-46113 carries high severity due to:
- Attack Vector: Local (requires guest access, but guest compromise is common)
- Attack Complexity: Low (straightforward page table manipulation)
- Privileges Required: Low (guest user can trigger, though guest root is more reliable)
- User Interaction: None (fully automated exploitation possible)
- Scope: Changed (affects host system outside guest boundary)
- Confidentiality Impact: High (host memory access)
- Integrity Impact: High (arbitrary code execution)
- Availability Impact: High (kernel panic capability)
Expected CVSS Score: 8.8 – 9.8 (High to Critical)
This places CVE-2026-46113 among the most critical Linux kernel vulnerabilities, requiring immediate attention.
Who Needs to Prioritize This Fix
Critical Priority:
- Cloud service providers hosting multi-tenant environments
- Managed hosting providers with shared physical servers
- Organizations running untrusted or semi-trusted guest workloads
- Financial institutions and healthcare providers with strict security requirements
High Priority:
- Enterprise data centers with KVM-based virtualization
- Organizations with sensitive data on virtualized infrastructure
- Companies subject to regulatory compliance requirements (PCI-DSS, HIPAA, SOC 2)
Medium Priority:
- Organizations running only trusted, internal VMs
- Development and testing environments with isolated networks
- Single-tenant deployments with controlled guest access
Blast Radius in Production Environments
The impact scope depends on your infrastructure architecture:
Worst Case (Shared Physical Servers):
- All VMs on affected host compromised
- Potential lateral movement to other hosts
- Data exposure across multiple customers/departments
- Complete loss of virtualization security guarantees
Moderate Case (Isolated Hosts):
- Single host compromise
- Limited lateral movement
- Contained data exposure
- Partial recovery possible through host isolation
Best Case (Hardened Environments):
- Guest privilege restrictions limit exploitation
- Monitoring detects exploitation attempts
- Rapid response procedures minimize dwell time
- Backup systems enable recovery
Timeline for Exploitation Risk
Immediate Risk (Days 0-7):
- Proof-of-concept exploits likely available
- Automated scanning tools deployed by attackers
- Opportunistic exploitation of unpatched systems
Active Exploitation (Weeks 1-4):
- Widespread exploitation in the wild
- Targeted attacks on high-value targets
- Ransomware groups incorporating exploit
- Botnet operators weaponizing vulnerability
Persistent Risk (Months 2+):
- Exploitation continues against unpatched systems
- Vulnerability becomes standard in attacker toolkits
- Legacy systems remain vulnerable indefinitely
- Compliance violations accumulate
Detection and Identification
Checking Your Kernel Version
Step 1: Identify Current Kernel
uname -r
Step 2: Check Kernel Release Information
cat /proc/version
Step 3: Cross-Reference Against Advisories
Visit your distribution’s security advisory page:
- Red Hat/CentOS: https://access.redhat.com/security/cve/CVE-2026-46113
- Ubuntu: https://ubuntu.com/security/CVE-2026-46113
- Debian: https://security-tracker.debian.org/tracker/CVE-2026-46113
- SUSE: https://www.suse.com/security/cve/CVE-2026-46113
Step 4: Verify KVM Status
# Check if KVM is loaded
lsmod | grep kvm
# Verify shadow paging is enabled
cat /sys/module/kvm/parameters/enable_shadow_paging
System Log Indicators
Monitor system logs for signs of exploitation attempts or successful exploitation:
Kernel Panic Indicators:
BUG: unable to handle page fault for address
RIP: [<ffffffff...>] kvm_mmu_page_fault+...
Call Trace: ... kvm_mmu_sync_roots ... kvm_mmu_invalidate_page
Memory Corruption Signs:
KASAN: use-after-free in kvm_mmu_page_invalidate
BUG: KASAN: use-after-free on address
Read of size 8 at addr ... by task qemu-system-x86/...
Suspicious KVM Activity:
KVM: unhandled rdmsr: 0x...
KVM: unhandled wrmsr: 0x...
KVM: emulation failed (instruction bytes: ...)
Check Logs:
# View kernel messages
dmesg | grep -i "kvm\|mmu\|page"
# Check system logs
journalctl -u kernel | grep -i "use-after-free\|kvm"
# Monitor in real-time
tail -f /var/log/kern.log | grep -i kvm
Monitoring Tools and IDS Signatures
Host-Based Monitoring:
- auditd: Monitor KVM module operations
auditctl -w /sys/module/kvm/ -p wa -k kvm_changes
- osquery: Track KVM process behavior
SELECT * FROM processes WHERE name LIKE '%qemu%' AND state != 'S';
- Falco: Detect suspicious KVM operations
- rule: Suspicious KVM Memory Access
condition: >
spawned_process and container and
(process.name = "qemu-system-x86_64" or process.name = "kvm") and
(open_read or open_write) and
fd.name glob "/dev/mem*"
output: Suspicious KVM memory access detected
Network-Based Detection:
- Snort/Suricata IDS Rules: Monitor for exploitation patterns
- Zeek: Analyze VM traffic for anomalies
- Splunk/ELK: Correlate KVM logs with security events
Vulnerability Scanning Approaches
Kernel Vulnerability Scanners:
# Using Lynis
lynis audit system | grep -i "CVE-2026-46113"
# Using Grub2 vulnerability scanner
grub2-mkconfig -o /boot/grub2/grub.cfg
# Manual kernel version check
grep -i "CVE-2026-46113" /usr/share/doc/*/CVE*
Automated Scanning:
- Qualys VMDR: Cloud-based vulnerability detection
- Rapid7 InsightVM: Continuous vulnerability assessment
- OpenVAS: Open-source vulnerability scanner
- Nessus: Commercial vulnerability assessment
Container/VM Image Scanning:
# Scan container images for vulnerable kernels
trivy image --severity HIGH,CRITICAL myimage:latest
# Scan VM templates
grype /path/to/vm/image
Remediation Strategy
Kernel Patching and Updates
Priority 1: Apply Security Patches
The definitive fix for CVE-2026-46113 is applying the patched kernel version from your distribution:
Red Hat/CentOS/Fedora:
sudo yum update kernel
sudo reboot
Ubuntu/Debian:
sudo apt update
sudo apt install linux-image-generic
sudo reboot
SUSE/openSUSE:
sudo zypper update kernel-default
sudo reboot
Verify Patch Application:
# After reboot, confirm new kernel is running
uname -r
# Verify KVM module is updated
modinfo kvm | grep version
Patch Deployment Timeline:
- Day 1: Test patches in non-production environment
- Day 2-3: Deploy to development/staging systems
- Day 4-7: Deploy to production systems in maintenance windows
- Day 8+: Verify all systems patched
Immediate Mitigation Without Patching
If immediate patching is impossible, implement these compensating controls:
Disable Shadow Paging (Performance Impact: Moderate to High):
# Add to kernel boot parameters
echo "options kvm enable_shadow_paging=0" | sudo tee /etc/modprobe.d/kvm-disable-shadow.conf
# Reboot required
sudo reboot
# Verify
cat /sys/module/kvm/parameters/enable_shadow_paging
# Should output: 0
Restrict Guest Privileges:
# Limit guest CPU features
# In libvirt XML: <cpu mode='host-model'/>
# Disable nested virtualization
echo "options kvm_intel nested=0" | sudo tee /etc/modprobe.d/kvm-nested.conf
# Restrict guest memory access
# Use SELinux or AppArmor to confine QEMU processes
Isolate Untrusted Guests:
# Run untrusted VMs on dedicated physical hosts
# Implement network segmentation
# Use separate storage pools
# Monitor guest activity continuously
Guest Permission Restrictions
Implement Least Privilege:
# Run QEMU with reduced privileges
# In libvirt: <domain type='kvm'>
# <devices>
# <emulator>/usr/bin/qemu-system-x86_64</emulator>
# </devices>
# </domain>
# Use SELinux confinement
semanage fcontext -a -t svirt_image_t "/var/lib/libvirt/images(/.*)?"
restorecon -Rv /var/lib/libvirt/images/
# Use AppArmor profiles
aa-enforce /etc/apparmor.d/usr.bin.qemu-system-x86_64
Disable Unnecessary Features:
# Disable KVM features not required
# In QEMU: -cpu host,-vmx,-svm
# Restrict I/O access
# Use vfio with IOMMU for device assignment
# Disable direct device access where possible
VM Activity Monitoring Setup
Continuous Monitoring Configuration:
1. Enable Audit Logging:
# Monitor KVM system calls
auditctl -a always,exit -F arch=b64 -S mmap -S mprotect -k kvm_memory
# Monitor page table modifications
auditctl -a always,exit -F arch=b64 -S ioctl -F a0=0xae -k kvm_ioctl
# Make rules persistent
echo "auditctl -a always,exit -F arch=b64 -S mmap -S mprotect -k kvm_memory" >> /etc/audit/rules.d/kvm.rules
2. Set Up Real-Time Alerting:
# Monitor for exploitation patterns
tail -f /var/log/audit/audit.log | grep -i "kvm_memory\|kvm_ioctl" | \
while read line; do
echo "Alert: Suspicious KVM activity detected"
echo "$line" | mail -s "KVM Security Alert" security@example.com
done
3. Implement Behavioral Analysis:
# Track VM CPU and memory usage anomalies
# Alert on unexpected spikes that may indicate exploitation
# Monitor context switch rates and system call patterns
# Correlate with known exploitation signatures
Implementation Roadmap

Patch Deployment Planning
Phase 1: Assessment (Days 1-2)
- Inventory all systems running KVM
- Identify vulnerable kernel versions
- Categorize systems by criticality
- Assess patch availability for your distributions
- Plan maintenance windows
Inventory Command:
# Find all KVM hosts
for host in $(cat /path/to/kvm_hosts.txt); do
ssh $host "echo $host: $(uname -r)"
done > kvm_inventory.txt
Phase 2: Testing (Days 3-5)
- Deploy patches to isolated test environment
- Verify VM functionality post-patch
- Test performance impact
- Validate monitoring and logging
- Document any issues
Test Procedure:
# Create test VM
virt-install --name test-vm --memory 2048 --disk size=20 \
--cdrom /path/to/iso --graphics none
# Run workload tests
stress-ng --cpu 4 --vm 2 --timeout 3600s
# Monitor system stability
watch -n 1 'dmesg | tail -20'
Phase 3: Staging Deployment (Days 6-10)
- Deploy patches to non-critical production systems
- Monitor for issues in production environment
- Validate patch effectiveness
- Gather performance metrics
- Refine deployment procedures
Phase 4: Production Rollout (Days 11-30)
- Deploy to critical systems during maintenance windows
- Prioritize multi-tenant and high-value systems
- Stagger deployments to maintain availability
- Monitor each deployment closely
- Document completion
Deployment Schedule Example:
Week 1: Development/Testing systems
Week 2: Staging/Pre-production systems
Week 3: Non-critical production systems
Week 4: Critical production systems
Week 5: Legacy/isolated systems
Testing Before Production Rollout
Comprehensive Testing Checklist:
Functionality Testing:
- [ ] VMs boot successfully
- [ ] Network connectivity works
- [ ] Storage I/O functions properly
- [ ] VM migration succeeds (if applicable)
- [ ] Snapshots and backups work
- [ ] Console access functions
Performance Testing:
# Baseline performance metrics
sysbench cpu run --cpu-max-prime=20000 > baseline.txt
# Post-patch performance
sysbench cpu run --cpu-max-prime=20000 > patched.txt
# Compare results
diff baseline.txt patched.txt
Stability Testing:
# Run extended stress tests
stress-ng --cpu 0 --vm 0 --timeout 24h --verbose
# Monitor for crashes or warnings
dmesg | grep -i "error\|warning\|bug"
Security Validation:
# Verify patch is applied
grep -i "CVE-2026-46113" /proc/version
# Confirm shadow paging status
cat /sys/module/kvm/parameters/enable_shadow_paging
# Test monitoring/alerting
# Trigger test alerts to verify detection
Rollback Procedures
Prepare Rollback Plan:
Pre-Patch Preparation:
# Create system snapshots
lvcreate -L5G -s -n kernel_backup /dev/vg0/root
# Backup boot configuration
cp -r /boot /boot.backup
# Document current state
uname -a > system_state.txt
lsmod > modules_state.txt
Rollback Execution (if needed):
# Boot from previous kernel
# Edit GRUB menu at boot time or:
grub2-set-default 1 # Select previous kernel entry
reboot
# Restore from snapshot if necessary
lvconvert --merge /dev/vg0/kernel_backup
reboot
Rollback Validation:
# Verify previous kernel is running
uname -r
# Confirm system stability
dmesg | tail -50
# Restart VMs
virsh start vm_name
Verification Steps Post-Update
Immediate Post-Patch Verification (within 1 hour):
# 1. Confirm new kernel is running
uname -r
# Should show patched version
# 2. Verify KVM module loaded
lsmod | grep kvm
# Should show kvm modules
# 3. Check for boot errors
dmesg | grep -i "error\|fail"
# Should show no critical errors
# 4. Verify VMs are running
virsh list --all
# All VMs should be in expected state
# 5. Test VM functionality
virsh console vm_name
# Should connect successfully
Extended Verification (24-48 hours post-patch):
# 1. Monitor system stability
uptime
# Should show stable uptime
# 2. Check for memory leaks
free -h
# Memory usage should be stable
# 3. Verify performance
sar -u 1 10
# CPU usage should be normal
# 4. Review security logs
journalctl -u kernel -n 100 | grep -i kvm
# Should show normal KVM operations
# 5. Validate monitoring alerts
# Confirm no false positives from monitoring systems
Long-Term Verification (ongoing):
# Weekly kernel security status check
apt list --upgradable | grep linux-image
# Monthly vulnerability scanning
nessus scan --template "Linux Vulnerabilities"
# Quarterly patch compliance audit
# Verify all systems running patched kernels
Frequently Asked Questions
How do I know if my Linux system is vulnerable to CVE-2026-46113?
Check your kernel version against the affected versions list. Use uname -r to identify your kernel, then cross-reference with official Linux security advisories for CVE-2026-46113. Visit your distribution’s security page (Red Hat, Ubuntu, Debian, SUSE) and search for CVE-2026-46113. If your kernel version is listed as affected and you haven’t applied the patch, your system is vulnerable.
You can also check if KVM is enabled:
lsmod | grep kvm
If KVM is loaded and your kernel is vulnerable, you need to apply the patch.
Can this vulnerability be exploited from outside the virtual machine?
No. The attacker must have control over the guest operating system to modify page directory entries and trigger the use-after-free condition. However, this makes it critical in multi-tenant environments where untrusted guests may be present. Guest compromise can occur through application vulnerabilities, credential theft, supply chain attacks, or insider threats—all realistic scenarios in production environments.
What’s the difference between this vulnerability and other KVM issues?
CVE-2026-46113 specifically targets shadow paging’s Guest Frame Number computation, causing a reference mapping failure that leads to use-after-free. This is distinct from other KVM vulnerabilities that might affect:
- Direct paging: Different memory management path
- EPT/NPT handling: Extended page table mechanisms
- MMIO emulation: Device memory access
- Interrupt handling: IRQ processing
The shadow paging-specific nature means disabling shadow paging provides mitigation, though with performance impact.
If I can’t patch immediately, what’s my best protection?
Implement a defense-in-depth approach:
- Disable shadow paging (if performance acceptable)
- Restrict guest privileges using SELinux/AppArmor
- Isolate untrusted guests on dedicated hosts
- Monitor VM activity continuously
- Implement network segmentation to limit lateral movement
- Maintain offline backups for recovery
- Plan expedited patching as soon as possible
This combination significantly reduces exploitation risk while you prepare for patching.
Does this affect all Linux distributions equally?
Yes, any distribution using the vulnerable Linux kernel versions with KVM enabled is affected. However, patch availability and timelines vary:
- Red Hat/CentOS: Typically patches within 24-48 hours
- Ubuntu: Usually patches within 1-2 weeks
- Debian: May take 2-4 weeks for stable releases
- SUSE: Typically patches within 1-2 weeks
Check your specific distribution’s security advisories for patch availability and apply as soon as available for your version.
Can I detect active exploitation of this vulnerability?
Yes, look for these indicators:
- Kernel panics with use-after-free messages
- Unexpected KVM crashes or VM terminations
- Host system instability or unresponsiveness
- Unusual guest behavior (unexpected CPU/memory usage)
- Suspicious memory access patterns in audit logs
- IDS alerts on exploitation signatures
Implement continuous monitoring with tools like auditd, Falco, and ELK to detect exploitation attempts in real-time.
References
Official Security Advisories:
- Linux Kernel Security Advisories: https://www.kernel.org/doc/html/latest/security/
- CVE-2026-46113 Details: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-46113
- Red Hat Security Advisory: https://access.redhat.com/security/cve/CVE-2026-46113
- Ubuntu Security Notice: https://ubuntu.com/security/CVE-2026-46113
KVM Documentation:
- KVM Architecture and Implementation: https://www.kernel.org/doc/html/latest/virt/kvm/
- Shadow Paging in KVM: https://www.kernel.org/doc/html/latest/virt/kvm/mmu.html
- KVM Security Considerations: https://www.kernel.org/doc/html/latest/virt/kvm/security.html
Related CVEs:
- CVE-2021-22543: KVM privilege escalation
- CVE-2020-14386: Linux kernel memory corruption
- CVE-2019-9456: KVM use-after-free vulnerability
Tools and Resources:
- Lynis: Security auditing tool
- Falco: Runtime security monitoring
- Auditd: Linux audit framework
- Nessus/Qualys: Vulnerability scanning
Document Version: 1.0
Last Updated: 2024
Classification: Security Advisory
Distribution: Internal and Customer Security Teams