Vulnerabilidad en Linux (CVE-2025-71079)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
13/01/2026
Última modificación:
25/03/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
net: nfc: corrige interbloqueo entre nfc_unregister_device y rfkill_fop_write<br />
<br />
Puede ocurrir un interbloqueo entre nfc_unregister_device() y rfkill_fop_write() debido a la inversión del orden de bloqueo entre device_lock y rfkill_global_mutex.<br />
<br />
El orden de bloqueo problemático es:<br />
<br />
Hilo A (rfkill_fop_write):<br />
rfkill_fop_write()<br />
mutex_lock(&amp;rfkill_global_mutex)<br />
rfkill_set_block()<br />
nfc_rfkill_set_block()<br />
nfc_dev_down()<br />
device_lock(&amp;dev-&gt;dev) &lt;- espera por device_lock<br />
<br />
Hilo B (nfc_unregister_device):<br />
nfc_unregister_device()<br />
device_lock(&amp;dev-&gt;dev)<br />
rfkill_unregister()<br />
mutex_lock(&amp;rfkill_global_mutex) &lt;- espera por rfkill_global_mutex<br />
<br />
Esto crea un escenario clásico de interbloqueo ABBA.<br />
<br />
Soluciona esto moviendo rfkill_unregister() y rfkill_destroy() fuera de la sección crítica de device_lock. Almacena el puntero rfkill en una variable local antes de liberar el bloqueo, luego llama a rfkill_unregister() después de liberar device_lock.<br />
<br />
Este cambio es seguro porque rfkill_fop_write() mantiene rfkill_global_mutex mientras llama a las retrollamadas de rfkill, y rfkill_unregister() también adquiere rfkill_global_mutex antes de la limpieza. Por lo tanto, rfkill_unregister() esperará a que cualquier retrollamada en curso se complete antes de continuar, y device_del() solo se llama después de que rfkill_unregister() retorna, previniendo cualquier uso después de liberación.<br />
<br />
El orden de bloqueo similar en nfc_register_device() (device_lock -&gt; rfkill_global_mutex a través de rfkill_register) es seguro porque durante el registro el dispositivo aún no está en rfkill_list, por lo que no pueden ocurrir operaciones rfkill concurrentes en este dispositivo.
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:*:*:*:*:*:*:*:* | 4.4.293 (incluyendo) | 4.5 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.9.291 (incluyendo) | 4.10 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.14.256 (incluyendo) | 4.15 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.19.218 (incluyendo) | 4.20 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.4.162 (incluyendo) | 5.5 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.10.82 (incluyendo) | 5.10.248 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.15.5 (incluyendo) | 5.15.198 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16.1 (incluyendo) | 6.1.160 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.120 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.12.64 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (incluyendo) | 6.18.4 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:5.16:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/1ab526d97a57e44d26fadcc0e9adeb9c0c0182f5
- https://git.kernel.org/stable/c/2e0831e9fc46a06daa6d4d8d57a2738e343130c3
- https://git.kernel.org/stable/c/6b93c8ab6f6cda8818983a4ae3fcf84b023037b4
- https://git.kernel.org/stable/c/8fc4632fb508432895430cd02b38086bdd649083
- https://git.kernel.org/stable/c/e02a1c33f10a0ed3aba855ab8ae2b6c4c5be8012
- https://git.kernel.org/stable/c/ee41f4f3ccf8cd6ba3732e867abbec7e6d8d12e5
- https://git.kernel.org/stable/c/f3a8a7c1aa278f2378b2f3a10500c6674dffdfda



