Vulnerabilidad en Linux (CVE-2026-23400)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
29/03/2026
Última modificación:
24/04/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
rust_binder: llamar a set_notification_done() sin el bloqueo de proc<br />
<br />
Considere la siguiente secuencia de eventos en un oyente de muerte:<br />
1. El proceso remoto muere y envía un mensaje BR_DEAD_BINDER.<br />
2. El proceso local invoca el comando BC_CLEAR_DEATH_NOTIFICATION.<br />
3. El proceso local luego invoca el BC_DEAD_BINDER_DONE.<br />
Entonces, el kernel responderá al comando BC_DEAD_BINDER_DONE con una<br />
respuesta BR_CLEAR_DEATH_NOTIFICATION_DONE usando push_work_if_looper().<br />
<br />
Sin embargo, esto puede resultar en un interbloqueo si el hilo actual no es un<br />
looper. Esto se debe a que dead_binder_done() aún mantiene el bloqueo de proc<br />
durante set_notification_done(), que llamó a push_work_if_looper().<br />
Normalmente, push_work_if_looper() toma el bloqueo de hilo, lo cual está bien tomar<br />
bajo el bloqueo de proc. Pero si el hilo actual no es un looper,<br />
entonces recurre a entregar la respuesta a la cola de trabajo del proceso,<br />
lo que implica tomar el bloqueo de proc. Dado que el bloqueo de proc ya está<br />
retenido, esto es un interbloqueo.<br />
<br />
Solucione esto liberando el bloqueo de proc durante set_notification_done(). No<br />
fue intencional que se mantuviera durante esa función para empezar.<br />
<br />
No creo que esto ocurra nunca en Android porque BC_DEAD_BINDER_DONE<br />
solo se invoca en respuesta a mensajes BR_DEAD_BINDER, y el kernel<br />
siempre entrega BR_DEAD_BINDER a un looper. Así que no hay ningún escenario donde<br />
el espacio de usuario de Android llame a BC_DEAD_BINDER_DONE en un hilo que no sea un looper.
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.18.1 (incluyendo) | 6.18.19 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (incluyendo) | 6.19.9 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:6.18:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



