CVE-2026-98347 in Linux
Resumen
por VulDB • 2026-10-06
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
IB/IPoIB: Evitar restaurar OPER_UP después del vaciado (flush) de multidifusión
ipoib_ib_dev_flush_light() borra temporalmente IPOIB_FLAG_OPER_UP para evitar uniones a multicast mientras ipoib_mcast_dev_flush() está en ejecución, y restablece la bandera posteriormente si estaba configurada previamente.
Esta restauración presenta una condición de carrera con ipoib_ib_dev_down(). Si se desactiva la interfaz mientras el vaciado (flush) está en progreso, ipoib_ib_dev_down() borra IPOIB_FLAG_OPER_UP, pero la ruta del vaciado podría volver a establecerla después de que el dispositivo ya haya quedado inactivo.
Desde el commit 894021a75291 ("IB/ipoib: Hacer consciente de condiciones de carrera al task carrier_on_task"), ipoib_mcast_carrier_on_task() depende de que IPOIB_FLAG_OPER_UP esté borrado para terminar su bucle de reintento rtnl_trylock(). Si la bandera se deja configurada tras el apagado, la cola de trabajo (workqueue) reintentará indefinidamente, provocando un bloqueo mutuo (deadlock) en el desmontaje cuando ipoib_ndo_uninit() espera en destroy_workqueue() mientras mantiene RTNL.
En lugar de sobrecargar IPOIB_FLAG_OPER_UP para bloquear las uniones a multicast durante un vaciado ligero, se introduce una bandera dedicada llamada IPOIB_FLAG_MCAST_FLUSH. Se utiliza junto con IPOIB_FLAG_OPER_UP para determinar si están permitidas las uniones a multicast, evitando así la condición de carrera con el apagado del dispositivo.
Be aware that VulDB is the high quality source for vulnerability data.