CVE-2026-98391

CVE-2026-98391

published October 14, 2026

CVSS
—
EPSS
0%
Percentile
9.0
In the wild
Unconfirmed
What it is

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

drm/xe: Guard page-fault worker with runtime PM check

During VM teardown, the VM's runtime PM reference is dropped

asynchronously, allowing the device to autosuspend while stale page

faults belonging to the now-dead VM are still queued. When the

page-fault worker later tries to ack one of these, it calls into

guc_ct_send_locked() on an already-suspended device, tripping:

Assertion `!xe_pm_runtime_suspended(xe)` failed!

WARNING at xe_device.c:1267 xe_device_assert_mem_access+0x11c/0x140 [xe]

A live VM/exec queue always holds a PM reference while it has

outstanding work, so if the device is suspended at ack time, the

owning context is already gone and the fault is stale.

Take a runtime PM reference across the entire pagefault

queue worker to safely deliver acks for torn-down VMs.

v3:

- Move PM ref to the generic xe_pagefault_queue_work using

guard(xe_pm_runtime)(xe) instead of tracking it in the GuC

backend(Matt Brost).

v2:

- Hold PM ref across the entire batch (begin/end) instead of per-ack.

This prevents the device from autosuspending mid-batch, which would

leave write_only acks written but the end flush skipped, and skip

counter++, desyncing the cadence check.(Himal)

- Add a comment explaining stale faults.(Himal)

(cherry picked from commit fcc2431d2213dc4d04250c4f1ae87d9c3ae0d455)

[Rodrigo: Added xe_device struct for compatibility while cherry-picking]

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00198 · 9.0th percentile
Published
2026-10-14T18:17Z
References (2)
EPSS history
Timeline
  • 16 OCT 03:33Z
    EPSS moved — → 0%
    epss
  • 14 OCT 13:25Z
    drm/xe: Guard page-fault worker with runtime PM check
    cvelistv5
  • 14 OCT 13:25Z
    drm/xe: Guard page-fault worker with runtime PM check
    cvelistv5