CVE-2026-98310
NieznaneStreszczenie
W jądrze Linux w komponencie drm/xe/shrinker wykryto błąd, w którym funkcja __xe_shrinker_walk() przegląda listy LRU SYSTEM i TT bez referencji runtime PM. Zmniejszanie bufora poza pamięcią systemową unieważnia jego mapowania GPU, co wymaga wybudzenia urządzenia — w stanie uśpienia runtime powoduje to ostrzeżenie asercji i zwrócenie -ENODEV przez unieważnienie TLB.
Ocena ryzyka
Może prowadzić do ostrzeżeń jądra, niepowodzeń unieważniania TLB oraz niestabilności sterownika GPU Intel Xe podczas odzyskiwania pamięci przy uśpionym urządzeniu. W środowiskach produkcyjnych z kartami Intel Xe może to skutkować błędami lub awariami związanymi z grafiką.
Rekomendacja
Zaktualizuj jądro Linux do wersji zawierającej poprawkę (commit 628f92b28bf4c371c10207daf6fc4caee0c0db2e lub nowszej). Do czasu aktualizacji unikaj operacji wymuszających odzyskiwanie pamięci (np. drop_caches) na maszynach z aktywnym sterownikiem drm/xe.
Inne podatności w Linux kernel drm/xe
Zobacz wszystkie- CVE-2026-97620Niskie ryzyko· EPSS 9%
W jądrze Linux w sterowniku drm/xe funkcja emit_render_cache_flush() nie żądała opróżnienia nieotypowanej pamięci podręcznej L1 dataport (LSC untyped L1) przed zwolnieniem pamięci do ponownego użycia. Od platformy MTL (Meteor Lake) powiązanie między HDC Pipeline Flush a opróżnieniem tej pamięci podręcznej nie jest już niezawodne, co może prowadzić do wycieku nieaktualnych danych. Poprawka jawnie ustawia bit PIPE_CONTROL0_UNTYPED_DATAPORT_CACHE_FLUSH na platformach Xe2 i nowszych.
- CVE-2026-90047Wysokie
W jądrze Linux w komponencie drm/xe wykryto błąd w funkcji get_flat_ccs_offset(), która zaokrąglała w górę offset końca pamięci VRAM, przez co fragment pamięci należący do sprzętowej kompresji (flat CCS) był udostępniany alokatorowi VRAM jako wolna pamięć. Sprzęt kompresji nadpisywał następnie dane w tym obszarze bez wiedzy sterownika, co prowadziło m.in. do uszkodzenia tablic stron i zawieszenia kompozytora (czarny ekran). Problem dotyczy głównie układów Intel Battlemage G21.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: drm/xe/shrinker: Take a runtime PM ref before shrinking non-system memory __xe_shrinker_walk() walks the SYSTEM and TT LRUs without a runtime PM reference. Shrinking a bo outside system memory invalidates its GPU mappings, which needs the device resumed, so while it is runtime suspended the page table zap trips an assert and the TLB invalidation returns -ENODEV: WARNING: drivers/gpu/drm/xe/xe_bo.c:770 at xe_bo_move_notify+0x1fc/0x450 [xe] xe_bo_shrink+0x20f/0x2b0 [xe] __xe_shrinker_walk+0x174/0x410 [xe] xe_shrinker_scan+0x10c/0x1e0 [xe] do_shrink_slab+0x176/0x7e0 drop_caches_sysctl_handler+0x9c/0xf0 Take a reference before walking a memory type other than XE_PL_SYSTEM and stop there if it cannot be acquired. Reuse the shrinker's existing acquire path, which resumes the device directly where reclaim allows that and otherwise queues the PM worker for a later scan. Stop the walk once the scan target is met, so a satisfied scan does not wake the device. System memory is still reclaimed while the device is suspended. Gate this on xe_device_is_l2_flush_optimized(), the same condition under which xe_bo_trigger_rebind() issues the invalidation for a non-fault-mode vm, so reclaim is unaffected elsewhere. The System CCS copy already has its own reference in xe_bo_shrink(). Only a non-fault-mode vm can reach this, since a fault-mode vm requires LR mode and that holds a runtime PM reference for the vm's lifetime. Reproduced with igt@xe_madvise@dontneed-before-exec while the GPU is runtime suspended. v2: simplify needs_rpm check. (Matt) retarget Fixes tag since the issue occurs with the non-fault-mode path added by 4e7ebff69aed. v3: handle this in xe_shrinker.c instead of xe_bo.c (Thomas) v4: stop the walk once the scan target is met. (Sashiko) v5: rebase on the freed page accounting fix. (Sashiko) v6: reuse the shrinker acquire path so runtime pm can be resumed directly instead of always queueing a worker. (Thomas) v7: replace xe_pm_runtime_put() with xe_shrinker_runtime_pm_put(). (Thomas) (cherry picked from commit 628f92b28bf4c371c10207daf6fc4caee0c0db2e)
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

