Vulnerabilidad en kernel de Linux (CVE-2024-56703)
Fecha de publicación:
28/12/2024
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: ipv6: Se han observado bloqueos suaves en fib6_select_path bajo una alta rotación del siguiente salto. Se han observado bloqueos suaves en un clúster del routeres de borde basados en Linux ubicados en un entorno altamente dinámico. Al usar el servicio `bird`, estos routeres actualizan continuamente las rutas anunciadas por BGP debido a que cambian con frecuencia los destinos del siguiente salto, al mismo tiempo que administran un tráfico IPv6 significativo. Los bloqueos ocurren durante el recorrido de la lista enlazada circular de múltiples rutas en la función `fib6_select_path`, particularmente mientras se itera a través de los hermanos en la lista. El problema generalmente surge cuando los nodos de la lista enlazada se eliminan inesperadamente de manera concurrente en un núcleo diferente, lo que se indica mediante sus elementos 'next' y 'previous' que apuntan al nodo mismo y su recuento de referencia cae a cero. Esto da como resultado un bucle infinito, lo que lleva a un bloqueo suave que desencadena un pánico del sistema a través del temporizador de vigilancia. Aplique primitivas RCU en las secciones de código problemáticas para resolver el problema. Cuando sea necesario, actualice las referencias a fib6_siblings para anotar o usar las API de RCU. Incluya un script de prueba que reproduzca el problema. El script actualiza periódicamente la tabla de enrutamiento mientras genera una gran carga de tráfico IPv6 saliente a través de varios clientes iperf3. Induce constantemente bloqueos suaves infinitos en un par de minutos. Registro del núcleo: 0 [ffffbd13003e8d30] machine_kexec en ffffffff8ceaf3eb 1 [ffffbd13003e8d90] __crash_kexec en ffffffff8d0120e3 2 [ffffbd13003e8e58] pánico en ffffffff8cef65d4 3 [ffffbd13003e8ed8] watchdog_timer_fn en ffffffff8d05cb03 4 [ffffbd13003e8f08] __hrtimer_run_queues en ffffffff8cfec62f 5 [ffffbd13003e8f70] hrtimer_interrupt en ffffffff8cfed756 6 [ffffbd13003e8fd0] __sysvec_apic_timer_interrupt en ffffffff8cea01af 7 [ffffbd13003e8ff0] sysvec_apic_timer_interrupt en ffffffff8df1b83d -- -- 8 [ffffbd13003d3708] asm_sysvec_apic_timer_interrupt en ffffffff8e000ecb [excepción RIP: fib6_select_path+299] RIP: ffffffff8ddafe7b RSP: ffffbd13003d37b8 RFLAGS: 00000287 RAX: ffff975850b43600 RBX: ffff975850b40200 RCX: 0000000000000000 RDX: 000000003fffffff RSI: 0000000051d383e4 RDI: ffff975850b43618 RBP: ffffbd13003d3800 R8: 000000000000000 R9: ffff975850b40200 R10: 000000000000000 R11: 000000000000000 R12: ffffbd13003d3830 R13: ffff975850b436a8 R14: ffff975850b43600 R15: 00000000000000007 ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018 9 [ffffbd13003d3808] ruta_pol_ip6 en ffffffff8ddb030c 10 [ffffbd13003d3888] entrada_ruta_pol_ip6 en ffffffff8ddb068c 11 [ffffbd13003d3898] búsqueda_regla_fib6 en ffffffff8ddf02b5 12 [ffffbd13003d3928] entrada_ruta_ip6 en ffffffff8ddb0f47 13 [ffffbd13003d3a18] ip6_rcv_finish_core.constprop.0 en ffffffff8dd950d0 14 [ffffbd13003d3a30] ip6_list_rcv_finish.constprop.0 en ffffffff8dd96274 15 [ffffbd13003d3a98] ip6_sublist_rcv en ffffffff8dd96474 16 [ffffbd13003d3af8] ipv6_list_rcv en ffffffff8dd96615 17 [ffffbd13003d3b60] __netif_receive_skb_list_core en ffffffff8dc16fec 18 [ffffbd13003d3be0] netif_receive_skb_list_internal en ffffffff8dc176b3 19 [ffffbd13003d3c50] napi_gro_receive en ffffffff8dc565b9 20 [ffffbd13003d3c80] ice_receive_skb en ffffffffc087e4f5 [hielo] 21 [ffffbd13003d3c90] ice_clean_rx_irq en ffffffffc0881b80 [hielo] 22 [ffffbd13003d3d20] ice_napi_poll en ffffffffc088232f [hielo] 23 [ffffbd13003d3d80] __napi_poll en ffffffff8dc18000 24 [ffffbd13003d3db8] net_rx_action en ffffffff8dc18581 25 [ffffbd13003d3e40] __do_softirq en ffffffff8df352e9 26 [ffffbd13003d3eb0] run_ksoftirqd en ffffffff8ceffe47 27 [ffffbd13003d3ec0] smpboot_thread_fn en ffffffff8cf36a30 28 [ffffbd13003d3ee8] kthread en ffffffff8cf2b39f 29 [ffffbd13003d3f28] ret_from_fork en ffffffff8ce5fa64 30 [ffffbd13003d3f50] ret_from_fork_asm en ffffffff8ce03cbb
Gravedad: Pendiente de análisis
Última modificación:
02/02/2025