Vulnerabilidad en kernel de Linux (CVE-2023-52578)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-362
Ejecución concurrente utilizando recursos compartidos con una incorrecta sincronización (Condición de carrera)
Fecha de publicación:
02/03/2024
Última modificación:
11/12/2024
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: bridge: use DEV_STATS_INC() syzbot/KCSAN informó ejecucións de datos en br_handle_frame_finish() [1] Esta función se puede ejecutar desde múltiples CPU sin exclusión mutua. Adopte DEV_STATS_INC() seguro para SMP para actualizar los campos dev->stats. Maneja las actualizaciones de dev->stats.tx_dropped mientras estamos en ello. [1] ERROR: KCSAN: ejecución de datos en br_handle_frame_finish / br_handle_frame_finish lectura-escritura en 0xffff8881374b2178 de 8 bytes por interrupción en la CPU 1: br_handle_frame_finish+0xd4f/0xef0 net/bridge/br_input.c:189 br_nf_hook_thresh+0x1ed/0x 220 br_nf_pre_routing_finish_ipv6+0x50f /0x540 NF_HOOK include/linux/netfilter.h:304 [en línea] br_nf_pre_routing_ipv6+0x1e3/0x2a0 net/bridge/br_netfilter_ipv6.c:178 br_nf_pre_routing+0x526/0xba0 net/bridge/br_netfilter_hooks.c:508 nf_hook_entry_hoo kfn incluye/linux/netfilter. h:144 [en línea] nf_hook_bridge_pre net/bridge/br_input.c:272 [en línea] br_handle_frame+0x4c9/0x940 net/bridge/br_input.c:417 __netif_receive_skb_core+0xa8a/0x21e0 net/core/dev.c:5417 __netif_receive_skb_one_core net / core/dev.c:5521 [en línea] __netif_receive_skb+0x57/0x1b0 net/core/dev.c:5637 Process_backlog+0x21f/0x380 net/core/dev.c:5965 __napi_poll+0x60/0x3b0 net/core/dev.c :6527 napi_poll net/core/dev.c:6594 [en línea] net_rx_action+0x32b/0x750 net/core/dev.c:6727 __do_softirq+0xc1/0x265 kernel/softirq.c:553 run_ksoftirqd+0x17/0x20 kernel/softirq. c:921 smpboot_thread_fn+0x30a/0x4a0 kernel/smpboot.c:164 kthread+0x1d7/0x210 kernel/kthread.c:388 ret_from_fork+0x48/0x60 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x11/0x20 arch/ x86/entry/entry_64.S:304 lectura-escritura en 0xffff8881374b2178 de 8 bytes por interrupción en la CPU 0: br_handle_frame_finish+0xd4f/0xef0 net/bridge/br_input.c:189 br_nf_hook_thresh+0x1ed/0x220 br_nf_pre_routing_finish_ ipv6+0x50f/0x540 NF_HOOK incluye/ linux/netfilter.h:304 [en línea] br_nf_pre_routing_ipv6+0x1e3/0x2a0 net/bridge/br_netfilter_ipv6.c:178 br_nf_pre_routing+0x526/0xba0 net/bridge/br_netfilter_hooks.c:508 nf_hook_entry_hookfn include/linux/netfilter. h:144 [en línea ] nf_hook_bridge_pre net/bridge/br_input.c: 272 [inline] br_handle_frame+0x4c9/0x940 net/bridge/br_input.c: 417 __netif_receive_skb_core+0xa8a/0x21e0 net/cors/dev.c: 5417 __netife_skbore dev.c :5521 [en línea] __netif_receive_skb+0x57/0x1b0 net/core/dev.c:5637 Process_backlog+0x21f/0x380 net/core/dev.c:5965 __napi_poll+0x60/0x3b0 net/core/dev.c:6527 napi_poll net/ core/dev.c:6594 [en línea] net_rx_action+0x32b/0x750 net/core/dev.c:6727 __do_softirq+0xc1/0x265 kernel/softirq.c:553 do_softirq+0x5e/0x90 kernel/softirq.c:454 __local_bh_enable_ip+ 0x64/0x70 kernel/softirq.c:381 __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:167 [en línea] _raw_spin_unlock_bh+0x36/0x40 kernel/locking/spinlock.c:210 spin_unlock_bh include/linux/spinlock.h:396 [en línea] batadv_tt_local_purge+0x1a8/0x1f0 net/batman-adv/translation-table.c:1356 batadv_tt_purge+0x2b/0x630 net/batman-adv/translation-table.c:3560 Process_one_work kernel/workqueue.c:2630 [en línea] Process_scheduled_works+0x5b8 /0xa30 kernel/workqueue.c:2703 trabajador_thread+0x525/0x730 kernel/workqueue.c:2784 kthread+0x1d7/0x210 kernel/kthread.c:388 ret_from_fork+0x48/0x60 arch/x86/kernel/process.c:147 ret_from_fork_asm +0x11/0x20 arch/x86/entry/entry_64.S:304 valor cambiado: 0x00000000000d7190 -> 0x00000000000d7191 Reportado por Kernel Concurrency Sanitizer en: CPU: 0 PID: 14848 Comm: kworker/u4:11 No contaminado 6.6.0-rc1 - syzkaller-00236-gad8a69f361b9 #0
Impacto
Puntuación base 3.x
7.00
Gravedad 3.x
ALTA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.17 (incluyendo) | 4.19.296 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (incluyendo) | 5.4.258 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (incluyendo) | 5.10.198 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.134 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.56 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.5.6 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:6.6:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.6:rc2:*:*:*:*:*:* |
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/04cc361f029c14dd067ad180525c7392334c9bfd
- https://git.kernel.org/stable/c/44bdb313da57322c9b3c108eb66981c6ec6509f4
- https://git.kernel.org/stable/c/89f9f20b1cbd36d99d5a248a4bf8d11d4fd049a2
- https://git.kernel.org/stable/c/8bc97117b51d68d5cea8f5351cca2d8c4153f394
- https://git.kernel.org/stable/c/ad8d39c7b437fcdab7208a6a56c093d222c008d5
- https://git.kernel.org/stable/c/d2346e6beb699909ca455d9d20c4e577ce900839
- https://git.kernel.org/stable/c/f2ef4cb4d418fa64fe73eb84d10cc5c0e52e00fa
- https://git.kernel.org/stable/c/04cc361f029c14dd067ad180525c7392334c9bfd
- https://git.kernel.org/stable/c/44bdb313da57322c9b3c108eb66981c6ec6509f4
- https://git.kernel.org/stable/c/89f9f20b1cbd36d99d5a248a4bf8d11d4fd049a2
- https://git.kernel.org/stable/c/8bc97117b51d68d5cea8f5351cca2d8c4153f394
- https://git.kernel.org/stable/c/ad8d39c7b437fcdab7208a6a56c093d222c008d5
- https://git.kernel.org/stable/c/d2346e6beb699909ca455d9d20c4e577ce900839
- https://git.kernel.org/stable/c/f2ef4cb4d418fa64fe73eb84d10cc5c0e52e00fa