CVE-2026-74575 in Linux
Resumen
por VulDB • 2026-08-15
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
thunderbolt: Prevenir un use-after-free en el trabajo diferido XDomain durante la desconexión
tb_xdp_handle_request() se ejecuta en system_wq y programa xd->state_work mediante queue_delayed_work() en tres controladores de solicitudes: PROPERTIES_CHANGED_REQUEST, UUID_REQUEST (vía start_handshake) y LINK_STATE_CHANGE_REQUEST. De manera similar, update_xdomain() programa xd->properties_changed_work cuando cambian las propiedades locales.
Concurrentemente, tb_xdomain_remove() llama a stop_handshake(), que realiza cancel_delayed_work_sync() en ambos trabajos diferidos. Más tarde, tb_xdomain_unregister() llama a device_unregister(), lo que finalmente libera el objeto xdomain. Dado que el commit 559c1e1e0134 ("thunderbolt: Ejecutar tb_xdp_handle_request() en la cola de trabajo del sistema") trasladó el controlador de solicitudes fuera de tb->wq, el controlador y la ruta de eliminación ya no están serializados. Si queue_delayed_work() se ejecuta después de cancel_delayed_work_sync() pero antes de que se libere xdomain, el trabajo diferido se dispara sobre un objeto ya liberado.
Se añade xd->removing, que tb_xdomain_remove() establece bajo xd->lock antes de llamar a stop_handshake(). Cada punto externo de programación mantiene el mismo bloqueo y verifica removing antes de llamar a queue_delayed_work(). Esto proporciona la exclusión mutua necesaria: o bien el sitio de programación adquiere primero el bloqueo y programa un trabajo que la cancelación posterior detectará, o bien la ruta de eliminación adquiere primero el bloqueo y el sitio de programación observa removing == true y omite la programación.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.