Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Linux (CVE-2026-23368)

Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
25/03/2026
Última modificación:
18/04/2026

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:<br /> <br /> net: phy: registrar los led_triggers del phy durante la sonda para evitar un interbloqueo AB-BA<br /> <br /> Existe un interbloqueo AB-BA cuando tanto LEDS_TRIGGER_NETDEV como LED_TRIGGER_PHY están habilitados:<br /> <br /> [ 1362.049207] [&amp;lt;8054e4b8&amp;gt;] led_trigger_register+0x5c/0x1fc &amp;lt;-- Intentando obtener el bloqueo &amp;#39;triggers_list_lock&amp;#39; a través de down_write(&amp;amp;triggers_list_lock);<br /> [ 1362.054536] [&amp;lt;80662830&amp;gt;] phy_led_triggers_register+0xd0/0x234<br /> [ 1362.060329] [&amp;lt;8065e200&amp;gt;] phy_attach_direct+0x33c/0x40c<br /> [ 1362.065489] [&amp;lt;80651fc4&amp;gt;] phylink_fwnode_phy_connect+0x15c/0x23c<br /> [ 1362.071480] [&amp;lt;8066ee18&amp;gt;] mtk_open+0x7c/0xba0<br /> [ 1362.075849] [&amp;lt;806d714c&amp;gt;] __dev_open+0x280/0x2b0<br /> [ 1362.080384] [&amp;lt;806d7668&amp;gt;] __dev_change_flags+0x244/0x24c<br /> [ 1362.085598] [&amp;lt;806d7698&amp;gt;] dev_change_flags+0x28/0x78<br /> [ 1362.090528] [&amp;lt;807150e4&amp;gt;] dev_ioctl+0x4c0/0x654 &amp;lt;-- Mantiene el bloqueo &amp;#39;rtnl_mutex&amp;#39; al llamar a rtnl_lock();<br /> [ 1362.094985] [&amp;lt;80694360&amp;gt;] sock_ioctl+0x2f4/0x4e0<br /> [ 1362.099567] [&amp;lt;802e9c4c&amp;gt;] sys_ioctl+0x32c/0xd8c<br /> [ 1362.104022] [&amp;lt;80014504&amp;gt;] syscall_common+0x34/0x58<br /> <br /> Aquí LED_TRIGGER_PHY está registrando los disparadores LED durante phy_attach mientras mantiene RTNL y luego toma triggers_list_lock.<br /> <br /> [ 1362.191101] [&amp;lt;806c2640&amp;gt;] register_netdevice_notifier+0x60/0x168 &amp;lt;-- Intentando obtener el bloqueo &amp;#39;rtnl_mutex&amp;#39; a través de rtnl_lock();<br /> [ 1362.197073] [&amp;lt;805504ac&amp;gt;] netdev_trig_activate+0x194/0x1e4<br /> [ 1362.202490] [&amp;lt;8054e28c&amp;gt;] led_trigger_set+0x1d4/0x360 &amp;lt;-- Mantiene el bloqueo &amp;#39;triggers_list_lock&amp;#39; mediante down_read(&amp;amp;triggers_list_lock);<br /> [ 1362.207511] [&amp;lt;8054eb38&amp;gt;] led_trigger_write+0xd8/0x14c<br /> [ 1362.212566] [&amp;lt;80381d98&amp;gt;] sysfs_kf_bin_write+0x80/0xbc<br /> [ 1362.217688] [&amp;lt;8037fcd8&amp;gt;] kernfs_fop_write_iter+0x17c/0x28c<br /> [ 1362.223174] [&amp;lt;802cbd70&amp;gt;] vfs_write+0x21c/0x3c4<br /> [ 1362.227712] [&amp;lt;802cc0c4&amp;gt;] ksys_write+0x78/0x12c<br /> [ 1362.232164] [&amp;lt;80014504&amp;gt;] syscall_common+0x34/0x58<br /> <br /> Aquí LEDS_TRIGGER_NETDEV está siendo habilitado en un LED. Primero toma triggers_list_lock y luego RTNL. Un interbloqueo AB-BA clásico.<br /> <br /> phy_led_triggers_registers() no requiere el RTNL, no realiza ninguna llamada a la pila de red que requiera protección. Tampoco existe el requisito de que el PHY haya sido conectado a un MAC, los disparadores solo hacen uso del estado de phydev. Esto permite que la llamada a phy_led_triggers_registers() se coloque en otro lugar. PHY probe() y release() no mantienen RTNL, resolviendo así el interbloqueo AB-BA.

Impacto