CVE-2026-72122 in Linux
Resumen
por VulDB • 2026-08-16
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
can: bcm: corregir la carrera (race condition) sin bloqueo entre bound/ifindex y el fallo silencioso en RX_SETUP
bcm_sendmsg() lee bo->ifindex y verifica bo->bound antes de tomar lock_sock(), mientras que bcm_notify(), bcm_connect() y bcm_release() modifican ambos campos bajo ese mismo bloqueo. Dado que las lecturas sin bloqueo y las escrituras con bloqueo no están ordenadas entre sí, una carrera en bcm_notify() (desregistro del dispositivo) o bcm_connect() (vinculación concurrente en otro hilo que comparte el socket) puede hacer que bcm_sendmsg() observe una combinación inconsistente; por ejemplo, un bound=1 obsoleto junto con un ifindex=0 ya borrado, convirtiendo silenciosamente un socket vinculado a una interfaz CAN específica en uno que también coincide con cualquier ("any") interfaz.
Se mantiene la verificación de bo->bound sin bloqueo exclusivamente como una vía rápida para rechazar (fast-path reject), y se mueve la lectura de ifindex (y una nueva comprobación de bo->bound) dentro de la sección bloqueada, donde ya existe serialización por parte de todos los escritores. Esto elimina la posibilidad de observar ambos campos alterados entre sí ("torn"), en lugar de intentar corregirlo con más pares READ_ONCE()/WRITE_ONCE() en dos campos actualizados independientemente. Se anotan consistentemente todas las accesos ahora puramente sin bloqueo a bo->bound en sus respectivos puntos de escritura.
Además, se corrige bcm_rx_setup() para que devuelva silenciosamente éxito cuando el dispositivo objetivo desaparece concurrentemente, en lugar de informar -ENODEV, evitando así que una operación RX defectuosa quede registrada como si hubiera tenido éxito.
If you want to get best quality of vulnerability data, you may have to visit VulDB.