Vulnerabilidad en Linux (CVE-2026-23393)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
25/03/2026
Última modificación:
25/03/2026
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:<br />
<br />
bridge: cfm: Corrección de condición de carrera en la eliminación de peer_mep<br />
<br />
Cuando se está eliminando un MEP par, se llama a cancel_delayed_work_sync() en ccm_rx_dwork antes de la liberación. Sin embargo, br_cfm_frame_rx() se ejecuta en contexto de softirq bajo rcu_read_lock (sin RTNL) y puede reprogramar ccm_rx_dwork a través de ccm_rx_timer_start() entre el retorno de cancel_delayed_work_sync() y la llamada a kfree_rcu().<br />
<br />
El siguiente es un escenario de condición de carrera simple:<br />
<br />
cpu0 cpu1<br />
<br />
mep_delete_implementation()<br />
cancel_delayed_work_sync(ccm_rx_dwork);<br />
br_cfm_frame_rx()<br />
// peer_mep todavía en hlist<br />
if (peer_mep-&gt;ccm_defect)<br />
ccm_rx_timer_start()<br />
queue_delayed_work(ccm_rx_dwork)<br />
hlist_del_rcu(&amp;peer_mep-&gt;head);<br />
kfree_rcu(peer_mep, rcu);<br />
ccm_rx_work_expired()<br />
// en peer_mep liberado<br />
<br />
Para evitar esto, cancel_delayed_work_sync() se reemplaza por disable_delayed_work_sync() en ambas rutas de eliminación de MEP par, de modo que las llamadas posteriores a queue_delayed_work() desde br_cfm_frame_rx() sean rechazadas silenciosamente.<br />
<br />
La función auxiliar cc_peer_disable() mantiene cancel_delayed_work_sync() porque también se utiliza para la ruta de alternancia de habilitación/deshabilitación de CC donde el trabajo debe permanecer reprogramable.



