CVE-2026-23558 Overview
CVE-2026-23558 is a race condition vulnerability in the Xen hypervisor affecting grant table handling for HVM and PVH guests. The flaw persists despite earlier fixes for XSA-379 and XSA-387. When a guest performs a grant table version change from v2 to v1 concurrently with mapping status pages via XENMEM_add_to_physmap, a narrow race window remains. Some status pages may be freed while mappings to them are still inserted into the guest's secondary (P2M) page tables, creating a use-after-free condition in host memory. The Xen Project tracks this issue as XSA-486 [CWE-362].
Critical Impact
A malicious HVM or PVH guest can trigger host memory corruption, potentially leading to host crash, information disclosure, or privilege escalation from guest to host.
Affected Products
- Xen hypervisor (all versions with grant table v2 support, per XSA-486)
- Systems running HVM guests on affected Xen builds
- Systems running PVH guests on affected Xen builds
Discovery Timeline
- 2026-05-19 - CVE-2026-23558 published to NVD
- 2026-05-19 - Last updated in NVD database
Technical Details for CVE-2026-23558
Vulnerability Analysis
The vulnerability is a race condition (Time-of-Check Time-of-Use class) in Xen's grant table subsystem. Grant tables allow guests to share memory pages with other guests or the hypervisor. Xen supports two grant table versions: v1 and v2. Version 2 introduces auxiliary status pages that track grant state separately from the main grant entries.
When a guest switches grant table version from v2 to v1, Xen frees the v2 status pages. The XENMEM_add_to_physmap hypercall allows a guest to map these status pages into its own physical address space (P2M). If both operations execute concurrently on different vCPUs, the status page can be freed by the version-change path while the physmap path still holds a reference and inserts a P2M mapping pointing to the now-freed page.
Prior advisories XSA-379 and XSA-387 attempted to close this race, but the locking adjustments left a remaining window. The result is a dangling P2M mapping to memory that may be reallocated for other purposes, breaking host memory isolation.
Root Cause
The root cause is incomplete synchronization between the grant table version transition logic and the physmap insertion path. Reference counting and locking do not fully serialize the free of status pages against in-flight XENMEM_add_to_physmap operations targeting those same pages.
Attack Vector
Exploitation requires local access from within an HVM or PVH guest with the ability to issue grant table operations and memory hypercalls. The attacker must run two operations in parallel across vCPUs: a grant table version-change hypercall transitioning from v2 to v1, and one or more XENMEM_add_to_physmap calls targeting grant status pages. High attack complexity reflects the narrow timing window required to win the race.
The vulnerability mechanism is documented in the Xen Project Security Advisory XSA-486. No public exploit code is available, and the issue is not listed in CISA KEV.
Detection Methods for CVE-2026-23558
Indicators of Compromise
- Unexpected Xen hypervisor crashes, panics, or BUG_ON assertions referencing grant table or P2M code paths
- Guest VMs issuing high-frequency GNTTABOP_set_version hypercalls paired with XENMEM_add_to_physmap calls targeting grant status pages
- Host kernel logs showing page reference count underflows or freelist corruption shortly after guest grant table activity
Detection Strategies
- Enable Xen hypervisor debug logging and monitor xl dmesg for grant table version-change events correlated with physmap operations from the same domain
- Audit guest hypercall patterns for anomalous parallel issuance of GNTTABOP_set_version and XENMEM_add_to_physmap from multiple vCPUs in the same domain
- Track host stability metrics per tenant to identify guests inducing repeated hypervisor instability
Monitoring Recommendations
- Forward Xen hypervisor logs and dom0 kernel logs to a centralized SIEM for correlation across hosts in the virtualization fleet
- Alert on Xen advisory-related kernel messages including grant table errors, P2M inconsistencies, and unexpected page state transitions
- Monitor for guest domains that crash repeatedly or trigger hypervisor reboots, as these may indicate exploitation attempts
How to Mitigate CVE-2026-23558
Immediate Actions Required
- Apply the patches referenced in XSA-486 to all Xen hosts running HVM or PVH guests
- Inventory all Xen deployments and identify hosts running untrusted or multi-tenant guests, prioritizing those for patching
- Restrict guest creation privileges to trusted administrators while patches are staged
Patch Information
The Xen Project has published fixes through XSA-486. Distribution maintainers including those tracking the Openwall OSS-Security disclosure are shipping updated Xen packages. Administrators should consult their Linux distribution security trackers and apply vendor-supplied Xen updates that reference XSA-486.
Workarounds
- Run only PV guests where feasible, as the race is specific to HVM and PVH guest types using grant table v2
- Disable grant table v2 support in guest configurations where the workload does not require it, forcing guests to remain on v1
- Limit untrusted guest workloads on unpatched hosts and migrate sensitive workloads to patched infrastructure
# Verify installed Xen version and check for XSA-486 patch level
xl info | grep xen_version
xl dmesg | grep -i "XSA-486\|grant"
# Example: restrict guest to grant table v1 in guest kernel cmdline
# Append to guest kernel boot parameters:
# gnttab_max_version=1
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


