CVE-2026-53142
N/A
Summary
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 Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 44e694958b95395bd1c41508c88c8ca141bf9bd7 < ddf1fe4c043aa42e46aef87b815d5deeed2fcd7b | affected |
| Linux | Linux | 44e694958b95395bd1c41508c88c8ca141bf9bd7 < 0f68ddfaaebfbb5581ee931779757d31f4dc9e24 | affected |
| Linux | Linux | 44e694958b95395bd1c41508c88c8ca141bf9bd7 < 238bcdaae8f2abc65e182de7d1f69cf8f611a610 | affected |
| Linux | Linux | 44e694958b95395bd1c41508c88c8ca141bf9bd7 < 68938cc08e23a94fd881e845837ff918de005ce7 | affected |
| Linux | Linux | 6.8 | affected |
| Linux | Linux | 0 < 6.8 | unaffected |
| Linux | Linux | 6.12.95 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.36 <= 6.18.* | unaffected |
| Linux | Linux | 7.0.13 <= 7.0.* | unaffected |
| Linux | Linux | 7.1 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/ddf1fe4c043aa42e46aef87b815d5deeed2fcd7b
- https://git.kernel.org/stable/c/0f68ddfaaebfbb5581ee931779757d31f4dc9e24
- https://git.kernel.org/stable/c/238bcdaae8f2abc65e182de7d1f69cf8f611a610
- https://git.kernel.org/stable/c/68938cc08e23a94fd881e845837ff918de005ce7
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.