Cloudanix VulnDB

CVE-2026-52951

None

CVSS

—

EPSS

0.2%

Published

Jun 24, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A Linux graphics driver bug can let a local program crash or destabilize affected systems by triggering a timing error in shared GPU memory handling.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Use After Free
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

This is a race condition in the Linux kernel Intel Xe DRM driver dma-buf import path. A buffer object can become visible through the dma-buf attachment list before it is fully initialized, or it can remain attached after initialization fails and the object is freed. If another DRM exporter/importer path triggers the invalidate_mappings callback during that window, the Xe driver can dereference an uninitialized, NULL, or freed buffer object. The practical technical outcomes are kernel NULL pointer dereference, use-after-free, GPU/DRM subsystem instability, and likely local denial of service through a kernel crash or GPU hang. Based on the available description, there is no evidence of public exploit maturity, remote exploitability, CISA KEV listing, or ransomware use.

Why it matters to the business

Systems using affected Linux kernels with the Intel Xe DRM driver may experience intermittent crashes, GPU failures, or host instability when graphics or compute workloads use dma-buf sharing, especially across drivers such as amdgpu and xe. The main business risk is unplanned downtime for workstations, GPU-enabled servers, CI/rendering systems, desktops, or container hosts that expose GPU devices to local workloads. The low EPSS score and lack of KEV status reduce immediate mass-exploitation concern, but kernel crashes can still affect availability in environments where untrusted or multi-tenant local users can access GPU devices.

How an attack unfolds

An attacker must typically have local code execution or the ability to run a workload that interacts with DRM/GPU device nodes. They create or import shared dma-buf objects through a path involving the Intel Xe driver and another DRM exporter or importer, then attempt to trigger mapping invalidation while the Xe buffer object is not fully initialized or has just failed initialization and been freed. By repeatedly exercising this race window, the attacker may cause the kernel to access an invalid buffer object, producing a NULL pointer dereference, use-after-free, GPU reset, kernel oops, or system panic. Reliable exploitation for code execution is not established from the available information; the expected attacker outcome is denial of service through kernel or graphics subsystem instability.

How to fix it

Apply a Linux kernel update that includes the upstream fix for the Xe DRM dma-buf attachment ordering issue, identified by the upstream commit af1f2ad0c59fe4e2f924c526f66e968289d77971 or the corresponding stable-kernel backport from the operating system vendor. Because no exact affected product list or fixed package versions were provided, use vendor advisories for the deployed distribution and kernel stream to identify the corrected kernel build. After installing the update, reboot into the fixed kernel and confirm the running kernel, not only the installed package, has changed. If immediate patching is not possible, reduce exposure by restricting local access to GPU/DRM device nodes, limiting untrusted workloads that can use /dev/dri devices, disabling GPU passthrough or device exposure to containers where feasible, and monitoring for kernel oops or GPU reset events.

How to confirm the fix worked

Confirm remediation by verifying that the running kernel contains the vendor backport or upstream commit af1f2ad0c59fe4e2f924c526f66e968289d77971. Check the running kernel version with uname and compare it against the distribution's fixed advisory. On source-based or custom kernels, inspect the Xe DRM dma-buf code path to ensure dma-buf attach occurs only after the Xe buffer object is fully initialized and error paths do not leave freed objects attached. Validate operationally by rebooting into the fixed kernel and reviewing dmesg or journal logs under representative GPU workloads for absence of new NULL pointer dereference, use-after-free, evict_flags, xe, dma-buf, or DRM oops messages.

Typical attack path

  1. Gain local ability to execute code on a Linux system with the Intel Xe DRM driver enabled and accessible GPU device nodes.
  2. Open DRM/GPU device interfaces and create or import dma-buf objects involving the Xe driver, potentially alongside another DRM driver such as amdgpu.
  3. Race dma-buf attachment, buffer-object initialization failure, and invalidate_mappings callback execution.
  4. Trigger access to an empty, partially initialized, or freed Xe buffer object.
  5. Cause a kernel oops, NULL pointer dereference, use-after-free condition, GPU hang, or system crash.

How to detect it

Review kernel and system logs for evidence of prior crashes or GPU subsystem faults. Useful sources include dmesg, journalctl -k, /var/log/kern.log, /var/log/messages, crash dump directories, kdump/vmcore records, and GPU workload scheduler logs. Search for kernel oops or panic events involving the Xe DRM driver, dma-buf import, invalidate_mappings callbacks, evict_flags, NULL pointer dereferences, use-after-free reports, GPU resets, or hangs. Pay particular attention to events occurring during local graphics, rendering, compute, VM passthrough, or container workloads using /dev/dri. Because this issue is race-dependent and may look like instability, correlate kernel crashes with local user sessions, container starts, GPU device access, or repeated dma-buf-heavy workloads. There are no known public attacker tool signatures from the provided information, so detection should focus on crash artifacts and anomalous repeated triggering rather than a specific exploit payload.

  • NULL pointer dereference
  • BUG: kernel NULL pointer dereference
  • Oops:
  • general protection fault
  • use-after-free
  • KASAN: use-after-free
  • evict_flags
  • invalidate_mappings
  • xe_dma_buf_init_obj
  • xe_bo_alloc
  • xe_bo_init_locked
  • drm/xe
  • xe
  • dma-buf
  • dma_buf
  • amdgpu
  • GPU HANG
  • GPU reset
  • /dev/dri/card
  • /dev/dri/renderD
  • /var/crash
  • /var/lib/systemd/coredump
  • vmcore
  • kdump

What your security team should do

  • Prioritize patching Linux systems that use Intel Xe graphics, expose /dev/dri to users or containers, or run untrusted GPU-enabled workloads.
  • Obtain the fixed kernel package from the relevant Linux distribution or vendor and reboot systems into the corrected kernel.
  • Inventory hosts with loaded Xe DRM components by checking kernel modules, PCI GPU inventory, and /dev/dri exposure.
  • Restrict access to GPU device nodes for nonessential users and workloads until patching is complete.
  • For containerized or multi-tenant platforms, review device passthrough policies and avoid exposing /dev/dri to untrusted containers unless required.
  • Monitor kernel logs for DRM/Xe/dma-buf crashes, especially NULL pointer dereferences in evict_flags or invalidate_mappings paths.
  • Treat repeated GPU-related kernel oops or host crashes as potential abuse or reliability-impacting exposure even though public exploitation is not currently known.

The record

In the Linux kernel, the following vulnerability has been resolved: drm/xe/dma-buf: handle empty bo and UAF races There look to be some nasty races here when triggering the invalidate_mappings hook: 1) We do xe_bo_alloc() followed by the attach, before the actual full bo init step in xe_dma_buf_init_obj(). However the bo is visible on the attachments list after the attach. This is bad since exporter driver, say amdgpu, can at any time call back into our invalidate_mappings hook, with an empty/bogus bo, leading to potential bugs/crashes. 2) Similar to 1) but here we get a UAF, when the invalidate_mappings hook is triggered. For example, we get as far as xe_bo_init_locked() but this fails in some way. But here the bo will be freed on error, but we still have it attached from dma-buf pov, so if the invalidate_mappings is now triggered then the bo we access is gone and we trigger UAF and more bugs/crashes. To fix this, move the attach step until after we actually have a fully set up buffer object. Note that the bo is not published to userspace until later, so not sure what the comment "Don't publish the bo until we have a valid attachment", is referring to. We have at least two different customers reporting hitting a NULL ptr deref in evict_flags when importing something from amdgpu, followed by triggering the evict flow. Hit rate is also pretty low, which would hint at some kind of race, so something like 1) or 2) might explain this. v2: - Shuffle the order of the ops slightly (no functional change) - Improve the comment to better explain the ordering (Matt B) (cherry picked from commit af1f2ad0c59fe4e2f924c526f66e968289d77971)

Affected packages

Ecosystem Package Introduced Fixed