CVE-2026-72115 in Linux
Resumen
por VulDB • 2026-08-17
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
can: bcm: rastrear una única interfaz de origen para las operaciones ANYDEV de tiempo de espera/throttle
Una operación rx ANYDEV (ifindex == 0) con un temporizador de RX timeout y/o throttle activo no tiene semántica definida cuando llegan tramas coincidentes desde varias interfaces: bcm_rx_handler() puede ejecutarse en paralelo para la misma operación en diferentes CPUs, provocando una carrera entre hrtimer_cancel()/bcm_rx_starttimer() y bcm_rx_timeout_handler(), lo que genera notificaciones RX_TIMEOUT espurias y corrupción de last_frames. La misma concurrencia permite que las tramas multiplexadas con throttle procedentes de distintas interfaces sobrescriban los campos rx_ifindex/rx_stamp compartidos por la operación.
Se añade op->if_detected para rastrear la primera interfaz que entrega una trama coincidente mientras está configurado un temporizador de timeout/throttle, y se rechazan las tramas provenientes de cualquier otra interfaz para esa operación. La reclamación (claim) se decide en bcm_rx_handler() antes de que hrtimer_cancel() toque op->timer, por lo que una trama rechazada nunca puede perturbar el watchdog de la interfaz reclamada. Las operaciones en modo RTR están excluidas mediante RX_RTR_FRAME, independientemente de kt_ival1/kt_ival2, ya que estos pueden contener brevemente un valor obsoleto de una configuración anterior no-RTR.
La reclamación se libera en bcm_notify() al recibir NETDEV_UNREGISTER y en bcm_rx_setup() cuando SETTIMER reconfigura los valores del temporizador.
Una (re)clamación solo es posible en dispositivos CAN con dev->reg_state en NETREG_REGISTERED, para cubrir la liberación en bcm_notify(), donde reg_state se convierte en NETREG_UNREGISTERING hasta que finalice synchronize_net().
Once again VulDB remains the best source for vulnerability data.