CVE-2025-38036
NoneCVSS
—
EPSS
0.2%
Published
Jun 18, 2025
CISA due date
—
Cloudanix analysis
A driver ordering mistake can make graphics virtualization features crash the whole system on certain Linux versions.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Null pointer dereference in xe_mmio_read/write during early VF GuC communication because gt->mmio is not yet initialized.
Why it matters to the business
Kernel crashes in SR-IOV virtual function deployments on Intel Xe graphics, causing downtime for virtualized graphics workloads.
How an attack unfolds
An attacker enables SR-IOV VF mode on an affected kernel; the VF initialization path calls GuC functions that assume MMIO is ready, triggering a page fault before the early xe_gt_mmio_init fix is applied.
How to fix it
Update the Linux kernel to a version containing commit ef6e950aea76a5009ccc79ebfa955ecc66cd85a2 which performs early xe_gt_mmio_init before GuC communication in VF paths.
How to confirm the fix worked
Confirm the presence of the early xe_gt_mmio_init call in the VF initialization sequence and test that VF mode no longer produces the page fault on GuC MMIO access.
Typical attack path
- Configure SR-IOV VF for Xe GT
- Load xe driver in VF mode
- Trigger GMDID fetch via GuC H2G MMIO before gt->mmio setup
- Access unset MMIO register causing page fault crash
How to detect it
Search kernel logs for xe driver messages indicating SR-IOV VF mode followed by H2G MMIO attempts and page fault oops referencing unset MMIO addresses.
- xe 0000:00:02.1: [drm] Running in SR-IOV VF mode
- GT0: sending H2G MMIO 0x5507
- BUG: unable to handle page fault for address: 0000000000190240
What your security team should do
- Prioritize kernel upgrade to the fixed commit on systems using Xe SR-IOV
- Reboot affected hosts after patching to apply the corrected initialization order
- Review virtualization configurations to limit unnecessary VF exposure until patched
The record
In the Linux kernel, the following vulnerability has been resolved: drm/xe/vf: Perform early GT MMIO initialization to read GMDID VFs need to communicate with the GuC to obtain the GMDID value and existing GuC functions used for that assume that the GT has it's MMIO members already setup. However, due to recent refactoring the gt->mmio is initialized later, and any attempt by the VF to use xe_mmio_read|write() from GuC functions will lead to NPD crash due to unset MMIO register address: [] xe 0000:00:02.1: [drm] Running in SR-IOV VF mode [] xe 0000:00:02.1: [drm] GT0: sending H2G MMIO 0x5507 [] BUG: unable to handle page fault for address: 0000000000190240 Since we are already tweaking the id and type of the primary GT to mimic it's a Media GT before initializing the GuC communication, we can also call xe_gt_mmio_init() to perform early setup of the gt->mmio which will make those GuC functions work again.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Chainguard | hyperv-daemons-6.12 | 0 | 6.12.57-r2 |
| Chainguard | linux-aws-6.12-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-aws-6.12-fips-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-aws-6.12-headers | 0 | 6.12.57-r2 |
| Chainguard | linux-aws-6.12-modules | 0 | 6.12.57-r2 |
| Chainguard | linux-azure-6.12-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-azure-6.12-fips-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-azure-6.12-headers | 0 | 6.12.57-r2 |
| Chainguard | linux-azure-6.12-modules | 0 | 6.12.57-r2 |
| Chainguard | linux-gcp-6.12-boot-installed | 0 | 6.12.58-r0 |
| Chainguard | linux-gcp-6.12-fips-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-gcp-6.12-headers | 0 | 6.12.57-r2 |
| Chainguard | linux-gcp-6.12-modules | 0 | 6.12.57-r2 |
| Chainguard | linux-qemu-6.12-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.12-fips-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.12-headers | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.12-modules | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-fips-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-headers | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-modules | 0 | 6.12.63-r0 |
| Debian:13 | linux | 0 | No fix |
| Debian:14 | linux | 0 | 6.16.3-1 |
| Linux | Kernel | 6.8.0 | 6.14.9 |
Related vulnerabilities
- CVE-2025-39910 In the Linux kernel, the following vulnerability has been resolved: mm/vmalloc, mm/kasan… Also affects hyperv-daemons-6.12
- CVE-2025-39925 can: j1939: implement NETDEV_UNREGISTER notification handler Also affects hyperv-daemons-6.12
- CVE-2025-39905 net: phylink: add lock for serializing concurrent pl->phydev writes with resolver Also affects hyperv-daemons-6.12
- CVE-2025-39862 In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7915… Also affects hyperv-daemons-6.12
- CVE-2025-39859 In the Linux kernel, the following vulnerability has been resolved: ptp: ocp: fix… Also affects hyperv-daemons-6.12
- CVE-2025-39834 In the Linux kernel, the following vulnerability has been resolved: net/mlx5: HWS, Fix… Also affects hyperv-daemons-6.12
- CVE-2025-39830 In the Linux kernel, the following vulnerability has been resolved: net/mlx5: HWS, Fix… Also affects hyperv-daemons-6.12
- CVE-2025-39833 In the Linux kernel, the following vulnerability has been resolved: mISDN: hfcpci: Fix… Also affects hyperv-daemons-6.12