CVE-2026-98310 in Linuxinformación

Resumen

por VulDB • 2026-10-06

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

drm/xe/shrinker: Tomar una referencia runtime PM antes de reducir (shrink) memoria que no sea del sistema.

__xe_shrinker_walk() recorre las listas LRU SYSTEM y TT sin una referencia runtime PM. Reducir un bo fuera de la memoria del sistema invalida sus mapeos GPU, lo cual requiere que el dispositivo se reanude; por tanto, mientras está suspendido en modo runtime, la eliminación (zap) de tablas de páginas provoca un assert y la invalidación TLB devuelve -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 do_shrink_slab+0x176/0x7e0 drop_caches_sysctl_handler+0x9c/0xf0

Tomar una referencia antes de recorrer un tipo de memoria distinto a XE_PL_SYSTEM y detenerse allí si no se puede adquirir. Reutilizar la ruta de adquisición existente del shrinker, que reanuda el dispositivo directamente cuando la recuperación (reclaim) lo permite y, en caso contrario, cola al trabajador PM para una exploración posterior. Detener el recorrido una vez alcanzado el objetivo de escaneo, de modo que un escaneo satisfecho no despierte el dispositivo. La memoria del sistema sigue siendo recuperada mientras el dispositivo está suspendido.

Activar esto mediante xe_device_is_l2_flush_optimized(), la misma condición bajo la cual xe_bo_trigger_rebind() emite la invalidación para una vm en modo non-fault, de manera que la recuperación no se vea afectada en otros lugares. La copia System CCS ya tiene su propia referencia en xe_bo_shrink().

Solo puede llegar a esto una vm en modo non-fault, ya que una vm en modo fault requiere el modo LR y este mantiene una referencia runtime PM durante toda la vida de la vm.

Reproducido con igt@xe_madvise@dontneed-before-exec mientras la GPU está suspendida en modo runtime.

v2: simplificar la comprobación needs_rpm. (Matt) reorientar la etiqueta Fixes ya que el problema ocurre con la ruta non-fault-mode añadida por 4e7ebff69aed. v3: manejar esto en xe_shrinker.c en lugar de xe_bo.c (Thomas) v4: detener el recorrido una vez alcanzado el objetivo del escaneo. (Sashiko) v5: rebase sobre la corrección de contabilidad de páginas liberadas. (Sashiko) v6: reutilizar la ruta de adquisición del shrinker para que runtime pm pueda reanudarse directamente en lugar de colar siempre un trabajador. (Thomas) v7: sustituir xe_pm_runtime_put() por xe_shrinker_runtime_pm_put(). (Thomas)

(cherry picked from commit 628f92b28bf4c371c10207daf6fc4caee0c0db2e)

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-10-06

Moderación

aceptado

Artículo

VDB-414173

EPSS

0.00162

KEV

no

Actividades

muy bajo

Fuentes

Want to know what is going to be exploited?

We predict KEV entries!