CVE-2020-29479
📋 TL;DR
CVE-2020-29479 is a privilege escalation vulnerability in Xen's Ocaml xenstored implementation where unprivileged guests can perform unauthorized operations on the root xenstore node. This allows guests to modify permissions, delete the entire xenstore tree (causing host-wide denial of service), and gain write access to xenstore. All systems using oxenstored (default when Ocaml compiler is available) are vulnerable.
💻 Affected Systems
- Xen Hypervisor
📦 What is this software?
Fedora by Fedoraproject
Fedora by Fedoraproject
Xen by Xen
⚠️ Risk & Real-World Impact
Worst Case
Complete host-wide denial of service through deletion of the entire xenstore tree, plus potential privilege escalation allowing guest VMs to manipulate other VMs' configurations and data.
Likely Case
Guest VMs gaining unauthorized xenstore write access, potentially leading to data manipulation, configuration changes, and limited denial of service.
If Mitigated
Minimal impact if using C xenstored instead of oxenstored, or if proper network segmentation and access controls prevent guest-to-guest attacks.
🎯 Exploit Status
Exploitation requires guest VM access but appears straightforward based on advisory description. No public exploit code found in references.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Xen 4.14.1 and later
Vendor Advisory: https://xenbits.xenproject.org/xsa/advisory-353.html
Restart Required: Yes
Instructions:
1. Update Xen to version 4.14.1 or later. 2. Update through distribution channels: For Fedora: 'sudo dnf update xen'. For Debian: 'sudo apt update && sudo apt upgrade xen'. 3. Restart Xen services and affected VMs.
🔧 Temporary Workarounds
Switch to C xenstored
linuxReplace oxenstored with C xenstored implementation which is not vulnerable
Configure Xen to use C xenstored instead of oxenstored (check Xen documentation for specific configuration)
🧯 If You Can't Patch
- Isolate vulnerable Xen hosts from critical systems and implement strict network segmentation
- Monitor for unusual xenstore activity and implement enhanced logging for xenstored operations
🔍 How to Verify
Check if Vulnerable:
Check if using oxenstored: 'ps aux | grep xenstored' should show oxenstored process. Check Xen version: 'xl info' or 'xm info' should show version 4.14.x or earlier.
Check Version:
xl info | grep xen_version || xm info | grep xen_major
Verify Fix Applied:
Verify Xen version is 4.14.1 or later: 'xl info | grep xen_version'. Confirm oxenstored process is running patched version.
📡 Detection & Monitoring
Log Indicators:
- Unusual xenstore operations from guest VMs
- Permission modification attempts on root node
- xenstored crash or restart logs
Network Indicators:
- Abnormal xenstore communication patterns between VMs
SIEM Query:
Process: xenstored AND (EventID: crash OR "permission denied" OR "root node")
🔗 References
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/2C6M6S3CIMEBACH6O7V4H2VDANMO6TVA/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/OBLV6L6Q24PPQ2CRFXDX4Q76KU776GKI/
- https://security.gentoo.org/glsa/202107-30
- https://www.debian.org/security/2020/dsa-4812
- https://xenbits.xenproject.org/xsa/advisory-353.html
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/2C6M6S3CIMEBACH6O7V4H2VDANMO6TVA/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/OBLV6L6Q24PPQ2CRFXDX4Q76KU776GKI/
- https://security.gentoo.org/glsa/202107-30
- https://www.debian.org/security/2020/dsa-4812
- https://xenbits.xenproject.org/xsa/advisory-353.html