Skip to main content
Vulnerability Database/CVE-2026-98510

CVE-2026-98510: Linux Kernel DRM/XE Race Condition Vulnerability

CVE-2026-98510 is a race condition flaw in the Linux kernel DRM/XE driver that can trigger a NULL pointer dereference during VM cleanup. This article covers the technical details, system impact, and available fixes.

Published:

CVE-2026-98510 Overview

CVE-2026-98510 is a NULL pointer dereference vulnerability in the Linux kernel's drm/xe graphics driver subsystem. The flaw resides in the virtual memory (VM) teardown logic within xe_vm_close_and_put(). The function previously destroyed the page table root (vm->pt_root) before unlinking contested virtual memory areas (VMAs) tied to external buffer objects (BOs). A concurrent eviction of a shared BO can trigger xe_bo_trigger_rebind(), which walks the BO's VMAs and calls xe_vm_invalidate_vma() followed by xe_pt_zap_ptes(). Because vm->pt_root[tile->id] has already been freed, dereferencing pt->level causes a kernel crash.

Critical Impact

A race condition in the Intel Xe GPU driver can cause a kernel NULL pointer dereference, resulting in a denial-of-service crash of the host system.

Affected Products

  • Linux kernel versions containing the drm/xe driver prior to the fix
  • Systems using Intel Xe-based graphics hardware
  • Stable kernel branches that received the backport (see referenced commits)

Discovery Timeline

  • 2026-10-18 - CVE-2026-98510 published to NVD
  • 2026-10-19 - Last updated in NVD database

Technical Details for CVE-2026-98510

Vulnerability Analysis

The defect is a classic ordering bug between resource destruction and concurrent access in the Intel Xe DRM driver. During VM shutdown, xe_vm_close_and_put() queues external-BO VMAs on a contested list for deferred cleanup via xe_vma_destroy_unlocked(). The original code invoked xe_vm_pt_destroy() before draining that contested list. As a result, the VM's page table root was freed while VMAs still referenced the live buffer objects through vm_bo->list.gpuva.

Another thread holding only the BO reservation lock (bo->resv) can race with this teardown. If that thread evicts the shared BO, xe_bo_trigger_rebind() iterates the BO's remaining VMAs. In fault mode, it reaches xe_vm_invalidate_vma() and then xe_pt_zap_ptes(), which reads pt->level from the already-freed vm->pt_root. The dereference crashes the kernel.

Root Cause

The root cause is incorrect destruction ordering [CWE-476]. Page table structures were released before all referencing VMAs were unlinked, violating the lifetime invariant that vm->pt_root must outlive any VMA capable of invoking page table operations.

Attack Vector

Triggering the condition requires a concurrent eviction of a shared buffer object during VM close on a system using the Xe driver in fault mode. The window is narrow and typically arises under GPU memory pressure with multiple contexts sharing external BOs. A user reportedly hit this NULL pointer dereference in production, confirming the race is reachable without special privileges beyond normal GPU access.

See the upstream fix for implementation details: Kernel Git Commit c2863648.

Detection Methods for CVE-2026-98510

Indicators of Compromise

  • Kernel oops or panic messages referencing xe_pt_zap_ptes in the call stack
  • NULL pointer dereference backtraces that include xe_vm_invalidate_vma and xe_bo_trigger_rebind
  • Unexpected GPU driver crashes on systems with Intel Xe graphics under memory pressure

Detection Strategies

  • Collect and parse /var/log/kern.log and dmesg output for crash signatures involving the Xe driver teardown path.
  • Monitor system reboot frequency on Xe-equipped hosts and correlate with workloads that heavily share GPU buffer objects.
  • Enable kdump to capture vmcores for any crash in the drm/xe subsystem for root-cause confirmation.

Monitoring Recommendations

  • Track kernel version inventory across endpoints to identify hosts missing the backported fix.
  • Alert on repeated GPU driver resets or xe module faults via host telemetry pipelines.
  • Forward kernel ring buffer events to a centralized log platform for pattern analysis.

How to Mitigate CVE-2026-98510

Immediate Actions Required

  • Update to a Linux kernel version that includes the backport commits referenced in the NVD entry.
  • Audit affected systems running Intel Xe graphics, particularly those with GPU-accelerated workloads using shared buffer objects.
  • Schedule reboots after patch deployment to ensure the fixed kernel module is active.

Patch Information

The fix defers xe_vm_free_scratch() and xe_vm_pt_destroy() until after all contested VMAs have been unlinked and destroyed. Backports are available in the following stable tree commits: 24a22fb3, 70fddc0, ba678c2, and bddaa5e. Apply the vendor-supplied kernel update appropriate for your distribution.

Workarounds

  • No supported upstream workaround exists; applying the patched kernel is the recommended remediation.
  • Where patching is delayed, avoid GPU workloads that heavily share external buffer objects across contexts to reduce race likelihood.
  • Consider disabling fault mode on the Xe driver if operationally acceptable, as the crash path depends on fault-mode invalidation.

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.