CVE-2025-40329 in Linuxinformación

Resumen

por VulDB • 2026-05-12

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

drm/sched: Corrección de un bloqueo mutuo (deadlock) en drm_sched_entity_kill_jobs_cb

El problema de Mesa mencionado a continuación señalaba un posible bloqueo mutuo:

[ 1231.611031] Posible escenario de bloqueo no seguro para interrupciones:

[ 1231.611033] CPU0 CPU1
[ 1231.611034] ---- ----
[ 1231.611035] lock(&xa->xa_lock#17);
[ 1231.611038] local_irq_disable();
[ 1231.611039] lock(&fence->lock);
[ 1231.611041] lock(&xa->xa_lock#17);
[ 1231.611044] <Interrupción>
[ 1231.611045] lock(&fence->lock);
[ 1231.611047]
*** BLOQUEO MUTUO (DEADLOCK) ***

En este ejemplo, CPU0 sería cualquier función que acceda a job->dependencies a través de las funciones xa_* que no deshabilitan las interrupciones (por ejemplo: drm_sched_job_add_dependency(), drm_sched_entity_kill_jobs_cb()).

CPU1 está ejecutando drm_sched_entity_kill_jobs_cb() como una devolución de llamada (callback) de señalización de fence, por lo que se encuentra en un contexto de interrupción. Se producirá un bloqueo mutuo al intentar adquirir xa_lock, que ya está retenida por CPU0.

Reemplazar todos los usos de xa_* por sus contrapartes xa_*_irq solucionaría este problema, pero Christian señaló otro problema: dma_fence_signal toma fence.lock, al igual que dma_fence_add_callback.

dma_fence_signal() // bloquea f1.lock -> drm_sched_entity_kill_jobs_cb() -> foreach dependencies -> dma_fence_add_callback() // bloquea f2.lock

Esto provocará un bloqueo mutuo si f1 y f2 comparten el mismo spinlock.

Para solucionar ambos problemas, el código que itera sobre las dependencias y las reactiva se ha trasladado a drm_sched_entity_kill_jobs_work().

[phasta: correcciones menores en el mensaje del commit]

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsable

Linux

Reservar

2025-04-16

Divulgación

2025-12-09

Moderación

aceptado

Artículo

VDB-334929

CPE

listo

EPSS

0.00194

KEV

no

Actividades

muy bajo

Fuentes

Interested in the pricing of exploits?

See the underground prices here!