Vulnerabilidad en kernel de Linux (CVE-2022-49696)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-416
Utilización después de liberación
Fecha de publicación:
26/02/2025
Última modificación:
25/03/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: tipc: corrección de lectura use-after-free en tipc_named_reinit syzbot encontró el siguiente problema en: ================================================================== BUG: KASAN: use-after-free in tipc_named_reinit+0x94f/0x9b0 net/tipc/name_distr.c:413 Read of size 8 at addr ffff88805299a000 by task kworker/1:9/23764 CPU: 1 PID: 23764 Comm: kworker/1:9 Not tainted 5.18.0-rc4-syzkaller-00878-g17d49e6e8012 #0 Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: events tipc_net_finalize_work Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description.constprop.0.cold+0xeb/0x495 mm/kasan/report.c:313 print_report mm/kasan/report.c:429 [inline] kasan_report.cold+0xf4/0x1c6 mm/kasan/report.c:491 tipc_named_reinit+0x94f/0x9b0 net/tipc/name_distr.c:413 tipc_net_finalize+0x234/0x3d0 net/tipc/net.c:138 process_one_work+0x996/0x1610 kernel/workqueue.c:2289 worker_thread+0x665/0x1080 kernel/workqueue.c:2436 kthread+0x2e9/0x3a0 kernel/kthread.c:376 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:298 [...] ================================================================== En el commit d966ddcc3821 ("tipc: corregir un bloqueo al vaciar el trabajo programado"), la función cancel_work_sync() solo se asegura de que SOLO el trabajo tipc_net_finalize_work() se esté ejecutando/pendiente en cualquier CPU que se haya completado antes de que el espacio de nombres tipc se destruya mediante tipc_exit_net(). Pero esta función no garantiza que el trabajo sea el último en cola. Por lo tanto, se puede acceder a la instancia destruida en el trabajo que intentará ponerse en cola más tarde. Para solucionarlo por completo, reordenamos la llamada de cancel_work_sync() para asegurarnos de que el trabajo tipc_net_finalize_work() se haya puesto en cola por última vez y se deba completar llamando a cancel_work_sync().
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:*:*:*:*:*:*:*:* | 5.4.83 (incluyendo) | 5.5 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.9.14 (incluyendo) | 5.10.127 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.51 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 5.18.8 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:5.19:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.19:rc2:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.19:rc3:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página