Description
In the Linux kernel, the following vulnerability has been resolved:

drm/xe/vm: nuke PTs only after unlinking contested VMAs

In xe_vm_close_and_put(), external-BO VMAs are queued on the contested
list for deferred destruction via xe_vma_destroy_unlocked(). However,
xe_vm_pt_destroy() was previously invoked before processing contested
VMAs, destroying vm->pt_root while those VMAs were still linked to their
respective buffer objects (vm_bo->list.gpuva).

If a concurrent thread evicts one of those shared buffer objects,
xe_bo_trigger_rebind() holding only bo->resv walks the BO's VMAs and, in
fault mode, calls xe_vm_invalidate_vma() -> xe_pt_zap_ptes(). Because
vm->pt_root[tile->id] is already NULL, dereferencing pt->level causes a
NULL ptr deref.

Fix this by deferring xe_vm_free_scratch() and xe_vm_pt_destroy() until
after all contested VMAs have been unlinked and destroyed.

User is reporting hitting a NULL ptr deref in xe_pt_zap_ptes(), which
could be explained by this race.

(cherry picked from commit c2863648959489767f08892fd6e90577d2ea0b6a)
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service via NULL pointer dereference in kernel
Action: Immediate Patch
AI Analysis

Impact

The defect originates in the Linux kernel's DRM Xe virtual memory subsystem. When a VM is closed, page tables (PTs) are freed before pending VMAs are unlinked, causing a race that leads to a NULL pointer dereference in the function xe_pt_zap_ptes during a concurrent eviction. The resulting kernel panic would stop system operation, providing an attacker with a denial‑of‑service condition. This is a classic race‑condition flaw (CWE-362) that culminates in a NULL pointer dereference (CWE-476).

Affected Systems

Any Linux kernel that contains the DRM Xe driver is potentially vulnerable; the CVE data does not specify a particular kernel version, so the risk applies to all affected builds that have not yet incorporated the fix.

Risk and Exploitability

Exploitation requires the attacker to simultaneously generate buffer objects that are subject to eviction while the PT destruction is pending, a scenario plausibly achievable by user‑space graphics applications or malicious code with similar permissions. The vulnerability is not listed in CISA's KEV catalog and no EPSS score is available, yet the impact of a kernel crash is severe. The combination of a high‑impact kernel panic and a non‑trivial but achievable race condition makes this a high‑severity flaw that should be addressed immediately.

Generated by OpenCVE AI on October 18, 2026 at 17:37 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply a kernel update from your distribution that incorporates the commit fixing the race condition in drm/xe/vm
  • Reboot the system so the updated kernel takes effect
  • If an update is not immediately available, limit or disable applications that trigger aggressive buffer object evictions or restrict DRM Xe usage until a patch is applied

Generated by OpenCVE AI on October 18, 2026 at 17:37 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 18:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-476

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: drm/xe/vm: nuke PTs only after unlinking contested VMAs In xe_vm_close_and_put(), external-BO VMAs are queued on the contested list for deferred destruction via xe_vma_destroy_unlocked(). However, xe_vm_pt_destroy() was previously invoked before processing contested VMAs, destroying vm->pt_root while those VMAs were still linked to their respective buffer objects (vm_bo->list.gpuva). If a concurrent thread evicts one of those shared buffer objects, xe_bo_trigger_rebind() holding only bo->resv walks the BO's VMAs and, in fault mode, calls xe_vm_invalidate_vma() -> xe_pt_zap_ptes(). Because vm->pt_root[tile->id] is already NULL, dereferencing pt->level causes a NULL ptr deref. Fix this by deferring xe_vm_free_scratch() and xe_vm_pt_destroy() until after all contested VMAs have been unlinked and destroyed. User is reporting hitting a NULL ptr deref in xe_pt_zap_ptes(), which could be explained by this race. (cherry picked from commit c2863648959489767f08892fd6e90577d2ea0b6a)
Title drm/xe/vm: nuke PTs only after unlinking contested VMAs
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-18T15:17:20.805Z

Reserved: 2026-09-25T10:25:14.354Z

Link: CVE-2026-98510

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:02.203

Modified: 2026-10-18T16:17:02.203

Link: CVE-2026-98510

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T17:45:06Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

  • CWE-476

    NULL Pointer Dereference