Vulnerabilidad en Linux (CVE-2025-71162)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-416
Utilización después de liberación
Fecha de publicación:
25/01/2026
Última modificación:
26/02/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
dmaengine: tegra-adma: Corrección de uso después de liberación<br />
<br />
Existe un error de uso después de liberación en el controlador Tegra ADMA cuando las transmisiones de audio son terminadas, particularmente durante condiciones XRUN. El problema ocurre cuando el búfer DMA es liberado por tegra_adma_terminate_all() antes de que la tarea de finalización de vchan termine de acceder a él.<br />
<br />
La condición de carrera sigue esta secuencia:<br />
<br />
1. La transferencia DMA se completa, desencadenando una interrupción que programa la tarea de finalización (la tarea aún no se ha ejecutado)<br />
2. La reproducción de audio se detiene, llamando a tegra_adma_terminate_all() que libera la memoria del búfer DMA a través de kfree()<br />
3. La tarea programada finalmente se ejecuta, llamando a vchan_complete() que intenta acceder a la memoria ya liberada<br />
<br />
Dado que las tareas pueden ejecutarse en cualquier momento después de ser programadas, no hay garantía de que el búfer permanezca válido cuando se ejecuta vchan_complete().<br />
<br />
Corrija esto mediante la sincronización adecuada de la finalización del canal virtual:<br />
- Llamando a vchan_terminate_vdesc() en tegra_adma_stop() para marcar los descriptores como terminados en lugar de liberar el descriptor.<br />
- Agregue la función de devolución de llamada tegra_adma_synchronize() que llama a vchan_synchronize() que elimina cualquier tarea pendiente y libera cualquier descriptor terminado.<br />
<br />
Registros de fallos:<br />
[ 337.427523] BUG: KASAN: uso después de liberación en vchan_complete+0x124/0x3b0<br />
[ 337.427544] Lectura de tamaño 8 en la dirección ffff000132055428 por la tarea swapper/0/0<br />
<br />
[ 337.427562] Traza de llamada:<br />
[ 337.427564] dump_backtrace+0x0/0x320<br />
[ 337.427571] show_stack+0x20/0x30<br />
[ 337.427575] dump_stack_lvl+0x68/0x84<br />
[ 337.427584] print_address_description.constprop.0+0x74/0x2b8<br />
[ 337.427590] kasan_report+0x1f4/0x210<br />
[ 337.427598] __asan_load8+0xa0/0xd0<br />
[ 337.427603] vchan_complete+0x124/0x3b0<br />
[ 337.427609] tasklet_action_common.constprop.0+0x190/0x1d0<br />
[ 337.427617] tasklet_action+0x30/0x40<br />
[ 337.427623] __do_softirq+0x1a0/0x5c4<br />
[ 337.427628] irq_exit+0x110/0x140<br />
[ 337.427633] handle_domain_irq+0xa4/0xe0<br />
[ 337.427640] gic_handle_irq+0x64/0x160<br />
[ 337.427644] call_on_irq_stack+0x20/0x4c<br />
[ 337.427649] do_interrupt_handler+0x7c/0x90<br />
[ 337.427654] el1_interrupt+0x30/0x80<br />
[ 337.427659] el1h_64_irq_handler+0x18/0x30<br />
[ 337.427663] el1h_64_irq+0x7c/0x80<br />
[ 337.427667] cpuidle_enter_state+0xe4/0x540<br />
[ 337.427674] cpuidle_enter+0x54/0x80<br />
[ 337.427679] do_idle+0x2e0/0x380<br />
[ 337.427685] cpu_startup_entry+0x2c/0x70<br />
[ 337.427690] rest_init+0x114/0x130<br />
[ 337.427695] arch_call_rest_init+0x18/0x24<br />
[ 337.427702] start_kernel+0x380/0x3b4<br />
[ 337.427706] __primary_switched+0xc0/0xc8
Impacto
Puntuación base 3.x
7.80
Gravedad 3.x
ALTA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.7 (incluyendo) | 5.10.249 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.199 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.162 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.122 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.12.67 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (incluyendo) | 6.18.7 (excluyendo) |
| 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:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:* |
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/2efd07a7c36949e6fa36a69183df24d368bf9e96
- https://git.kernel.org/stable/c/59cb421b0902fbef2b9512ae8ba198a20f26b41f
- https://git.kernel.org/stable/c/5f8d1d66a952d0396671e1f21ff8127a4d14fb4e
- https://git.kernel.org/stable/c/76992310f80776b4d1f7f8915f59b92883a3e44c
- https://git.kernel.org/stable/c/ae3eed72de682ddbba507ed2d6b848c21a6b721e
- https://git.kernel.org/stable/c/be655c3736b3546f39bc8116ffbf2a3b6cac96c4
- https://git.kernel.org/stable/c/cb2c9c4bb1322cc3c9984ad17db8cdd2663879ca



