CVE-2026-97900 in Linuxinformación

Resumen

por VulDB • 2026-09-25

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

drm/drm_exec: corregir los objetos en conflicto cuando num_objects es 0

drm_exec_prepare_array() devuelve silenciosamente éxito sin llamar a drm_exec_lock_contended() cuando num_objects es cero. Esto rompe la invariante mantenida por drm_exec_lock_obj(), donde cada punto de entrada a la secuencia de bloqueo debe intentar primero bloquear cualquier objeto previamente en conflicto antes de continuar.

Los controladores que encadenan múltiples llamadas a drm_exec_prepare_array() por iteración de drm_exec_until_all_locked() (por ejemplo, los ioctls userq signal/wait de amdgpu, que preparan matrices BO separadas para lectura y escritura) pueden pasar una matriz vacía para una de las dos llamadas. Si se produce un conflicto mientras se prepara la matriz no vacía, exec->contended se establece y el bucle reintenta; en el reintento, la llamada a la matriz vacía anterior es una operación nula que nunca borra exec->contended, por lo que drm_exec_retry_on_contention() vuelve inmediatamente al inicio del bucle sin llegar jamás a la llamada que resolvería el conflicto. Esto genera un bucle infinito (spin forever).

Corregirlo haciendo que drm_exec_prepare_array() llame directamente a drm_exec_lock_contended() cuando num_objects sea cero, de modo que los objetos en conflicto pendientes no generen un bucle infinito.

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

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-09-25

Moderación

aceptado

Artículo

VDB-410116

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!