CVE-2026-31601 Overview
CVE-2026-31601 is a null pointer dereference vulnerability in the Linux kernel's VFIO/XE subsystem. The vulnerability occurs when attempting to issue a reset on VF (Virtual Function) devices that don't support migration. This is caused by improper initialization where certain xe_vfio_pci_core_device members required for handling reset operations are only initialized as part of migration initialization, leading to a kernel page fault when these uninitialized members are accessed.
Critical Impact
Local attackers with low privileges can trigger a kernel panic through null pointer dereference, causing denial of service conditions on systems using Intel Xe graphics virtualization with SR-IOV.
Affected Products
- Linux Kernel (versions with VFIO/XE SR-IOV support)
- Systems using Intel Xe graphics drivers with Virtual Function support
- Linux deployments utilizing VFIO PCI passthrough for Xe devices
Discovery Timeline
- 2026-04-24 - CVE CVE-2026-31601 published to NVD
- 2026-04-29 - Last updated in NVD database
Technical Details for CVE-2026-31601
Vulnerability Analysis
The vulnerability resides in the VFIO subsystem's handling of Intel Xe graphics Virtual Functions. The core issue is an initialization ordering problem where the reset functionality depends on data structures that are only populated during migration initialization. When a VF device that doesn't support migration attempts to perform a Function Level Reset (FLR) through the sysfs interface (reset_store), the kernel attempts to read from memory at address 0x00000000000011f8, which corresponds to an uninitialized pointer within the xe_vfio_pci_core_device structure.
The crash occurs in xe_sriov_vfio_wait_flr_done+0xc/0x80 within the xe module, triggered through the call chain: reset_store → pci_reset_function → pci_dev_restore → xe_vfio_pci_reset_done. The RDI register shows 0x0000000000000000, confirming the null pointer condition when the function attempts to access struct members at offset 0x11f8.
Root Cause
The root cause is improper decoupling between VF initialization and migration initialization in the VFIO/XE driver. The xe_vfio_pci_core_device structure contains members that are critical for reset operations, but these members were only being initialized within the migration initialization code path. When migration is not supported or not initialized for a particular VF device, these structure members remain null or uninitialized. Subsequent reset operations assume these members are valid, leading to the null pointer dereference.
Attack Vector
The vulnerability requires local access with low privileges. An attacker can exploit this by writing to the sysfs reset interface for a VF device that doesn't have migration support enabled. The attack flow involves:
- Identifying an Intel Xe VF device without migration support
- Triggering a PCI function reset through the sysfs interface by writing to /sys/bus/pci/devices/<device>/reset
- The kernel processes the reset request and invokes xe_vfio_pci_reset_done
- The function attempts to call xe_sriov_vfio_wait_flr_done with an uninitialized device structure
- Accessing offset 0x11f8 of a null pointer triggers the page fault and kernel panic
The kernel panic results in immediate system unavailability, constituting a denial of service condition.
Detection Methods for CVE-2026-31601
Indicators of Compromise
- Kernel panic messages containing BUG: unable to handle page fault for address: 00000000000011f8
- Stack traces showing xe_sriov_vfio_wait_flr_done in the call chain
- System crashes associated with the xe_sriov_flr process or thread
- Oops messages with RIP: 0010:xe_sriov_vfio_wait_flr_done+0xc/0x80 [xe]
Detection Strategies
- Monitor kernel logs for page fault errors involving the xe or xe_vfio_pci modules
- Implement kernel crash dump analysis to detect patterns matching this vulnerability's signature
- Watch for unusual access patterns to VF device reset interfaces in /sys/bus/pci/devices/
- Deploy kernel tracepoints on xe_vfio_pci_reset_done and xe_sriov_vfio_wait_flr_done functions
Monitoring Recommendations
- Configure kdump or other kernel crash collection to capture diagnostic information
- Set up alerts for repeated kernel panics with VFIO or Xe driver involvement
- Monitor sysfs access patterns for PCI reset operations on VF devices
- Implement real-time log analysis for kernel page fault messages related to Intel graphics virtualization
How to Mitigate CVE-2026-31601
Immediate Actions Required
- Update the Linux kernel to a patched version containing the fix
- Restrict access to VF device sysfs reset interfaces to trusted administrators only
- Avoid triggering FLR operations on Xe VF devices without migration support until patched
- Consider temporarily disabling SR-IOV on affected systems if immediate patching is not possible
Patch Information
The Linux kernel maintainers have released patches to address this vulnerability by reorganizing the initialization code to properly decouple VF initialization from migration initialization. The fix ensures that all structure members required for reset operations are initialized regardless of whether migration support is enabled.
Official patches are available through the following kernel git commits:
Workarounds
- Restrict write access to /sys/bus/pci/devices/*/reset for VF devices using filesystem permissions
- Use SELinux or AppArmor policies to limit which processes can trigger PCI device resets
- Deploy udev rules to tighten permissions on Xe VF device sysfs entries
- If possible, disable VFIO passthrough for Xe VF devices without migration support
# Restrict reset sysfs access for VF devices
chmod 600 /sys/bus/pci/devices/*/reset
# Example udev rule to restrict VF reset access
# Add to /etc/udev/rules.d/99-xe-vf-security.rules
SUBSYSTEM=="pci", DRIVER=="xe_vfio_pci", ATTR{reset}="", MODE="0600", OWNER="root", GROUP="root"
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

