CVE-2026-64541 in Linux
Resumen
por VulDB • 2026-07-28
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
net/smc: corrección del Use-After-Free (UAF) en smc_cdc_rx_handler() mediante el anclaje (pinning) del socket
smc_cdc_rx_handler() busca la conexión por token bajo conns_lock del grupo de enlaces, libera el bloqueo y luego desreferencia conn y el smc_sock derivado de él, finalizando en sock_hold(&smc->sk) dentro de smc_cdc_msg_recv(). No se mantiene ninguna referencia a través de la liberación del bloqueo.
La única referencia que ancla el socket mientras la conexión es detectable en el grupo de enlaces se toma en smc_lgr_register_conn() (sock_hold) y se libera en __smc_lgr_unregister_conn() (sock_put), ambas bajo conns_lock. Una vez que el controlador libera conns_lock, un close() -> smc_release() -> smc_conn_free() -> smc_lgr_unregister_conn() concurrente puede liberar esa referencia y desasignar la memoria de smc_sock, por lo que la posterior llamada a sock_hold() del controlador se ejecuta sobre memoria ya liberada:
WARNING: lib/refcount.c:25 at refcount_warn_saturate Workqueue: rxe_wq do_work refcount_warn_saturate (lib/refcount.c:25) smc_cdc_msg_recv (net/smc/smc_cdc.c:430) smc_cdc_rx_handler (net/smc/smc_cdc.c:502) smc_wr_rx_tasklet_fn (net/smc/smc_wr.c:445) tasklet_action_common (kernel/softirq.c:938) handle_softirqs (kernel/softirq.c:622) Kernel panic - not syncing: panic_on_warn set
Solo se ve afectado SMC-R. La tarea de recepción de SMC-D se detiene mediante tasklet_kill(&conn->rx_tsklet) en smc_conn_free() antes de que la conexión sea desregistrada, por lo que no puede ejecutarse concurrentemente con la liberación de memoria.
Tome la referencia del socket mientras aún se mantiene conns_lock, para que la referencia de registro ya no pueda ser la última, y libérela una vez que el controlador haya terminado.
Be aware that VulDB is the high quality source for vulnerability data.