CVE-2026-53142

drm/xe/display: fix oops in suspend/shutdown without display

MEDIUM
5.5
CVSS Score
Published: June 25, 2026 at 08:38 AM UTC
Updated: July 7, 2026 at 04:59 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.1%

Description

In the Linux kernel, the following vulnerability has been resolved: drm/xe/display: fix oops in suspend/shutdown without display The xe driver keeps track of whether to probe display, and whether display hardware is there, using xe->info.probe_display. It gets set to false if there's no display after intel_display_device_probe(). However, the display may also be disabled via fuses, detected at a later time in intel_display_device_info_runtime_init(). In this case, the xe driver does for_each_intel_crtc() on uninitialized mode config in xe_display_flush_cleanup_work(), leading to a NULL pointer dereference, and generally calls display code with display info cleared. Check for intel_display_device_present() after intel_display_device_info_runtime_init(), and reset xe->info.probe_display as necessary. Also do unset_display_features() for completeness, although display runtime init has already done that. This will need to be unified across all cases later. Move intel_display_device_info_runtime_init() call slightly earlier, similar to i915, to avoid a bunch of unnecessary setup for no display cases. Note #1: The xe driver has no business doing low level display plumbing like for_each_intel_crtc() to begin with. It all needs to happen in display code. Note #2: The actual bug is present already in commit 44e694958b95 ("drm/xe/display: Implement display support"), but the oops was likely introduced later at commit ddf6492e0e50 ("drm/xe/display: Make display suspend/resume work on discrete"). (cherry picked from commit 7c3eb9f47533220888a67266448185fd0775d4da)

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

6.13 ≤ v < 6.18.366.19 ≤ v < 7.0.136.8 ≤ v < 6.12.956.8 ≤ v < 6.18.366.8 ≤ v < 7.0.136.8 ≤ v < 7.144e694958b95395bd1c41508c88c8ca141bf9bd77.1 rc17.1 rc27.1 rc37.1 rc47.1 rc57.1 rc67.1 rc7
Vendor states this is fixed in 0f68ddfaaebfbb5581ee931779757d31f4dc9e24 (fixed)
Vendor states this is fixed in 238bcdaae8f2abc65e182de7d1f69cf8f611a610 (fixed)
Vendor states this is fixed in 68938cc08e23a94fd881e845837ff918de005ce7 (fixed)
Vendor states this is fixed in ddf1fe4c043aa42e46aef87b815d5deeed2fcd7b (fixed)
Vendor states this is fixed in 6.12.95 (unaffected)
Vendor states this is fixed in 6.18.36 (unaffected)
Vendor states this is fixed in 6.8 (unaffected)
Vendor states this is fixed in 7.0.13 (unaffected)
Vendor states this is fixed in 7.1 (unaffected)

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
CWE-908

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card