CVE-2021-28710
📋 TL;DR
This vulnerability in Xen's VT-d IOMMU implementation allows a guest virtual machine to write to leaf page table entries when sharing page tables with CPUs. This occurs because Xen fails to properly strip the top-level page table for IOMMUs requiring only 3 levels instead of 4. Affected systems are those running Xen hypervisor with VT-d IOMMUs in shared page table mode.
💻 Affected Systems
- Xen Hypervisor
📦 What is this software?
Fedora by Fedoraproject
Xen by Xen
⚠️ Risk & Real-World Impact
Worst Case
A malicious guest VM could gain unauthorized access to host memory, potentially leading to host compromise, data exfiltration, or complete system takeover.
Likely Case
Guest VM escape allowing privilege escalation from guest to host, enabling attackers to access other VMs or host resources.
If Mitigated
Limited impact if proper network segmentation and access controls prevent malicious VMs from being deployed.
🎯 Exploit Status
Exploitation requires guest VM access and specific hardware configuration. No public exploit code has been disclosed.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Xen security advisory XSA-390 patches
Vendor Advisory: https://xenbits.xenproject.org/xsa/advisory-390.txt
Restart Required: Yes
Instructions:
1. Update Xen to patched version via distribution package manager. 2. For Fedora: 'sudo dnf update xen'. 3. For Gentoo: Follow GLSA 202208-23. 4. Reboot host system.
🔧 Temporary Workarounds
Disable shared page tables
linuxPrevent sharing of page tables between CPUs and IOMMUs
Add 'iommu=no-shared-page-tables' to Xen boot parameters
🧯 If You Can't Patch
- Isolate untrusted guest VMs on separate physical hardware
- Implement strict network segmentation between VMs and limit VM-to-VM communication
🔍 How to Verify
Check if Vulnerable:
Check Xen version and if VT-d IOMMU is enabled with shared page tables: 'xl info | grep xen_version' and check dmesg for IOMMU messages
Check Version:
xl info | grep xen_version
Verify Fix Applied:
Verify Xen version is patched: 'xl info | grep xen_version' should show version with XSA-390 fix applied
📡 Detection & Monitoring
Log Indicators:
- Unexpected memory access patterns in Xen logs
- Guest VM attempting to access privileged memory regions
Network Indicators:
- Unusual VM-to-VM communication patterns after guest compromise
SIEM Query:
Search for Xen hypervisor logs containing memory access violations or IOMMU-related errors
🔗 References
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/I7ZGWVVRI4XY2XSTBI3XEMWBXPDVX6OT/
- https://security.gentoo.org/glsa/202208-23
- https://xenbits.xenproject.org/xsa/advisory-390.txt
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/I7ZGWVVRI4XY2XSTBI3XEMWBXPDVX6OT/
- https://security.gentoo.org/glsa/202208-23
- https://xenbits.xenproject.org/xsa/advisory-390.txt