CVE-2026-64541 in Linux
Résumé
par VulDB • 28/07/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
net/smc : correction d'un Use-After-Free (UAF) dans smc_cdc_rx_handler() en épinglant la socket
smc_cdc_rx_handler() recherche la connexion par jeton sous conns_lock du groupe de liens, libère le verrou, puis déréférence conn et l'objet smc_sock qui en est dérivé, aboutissant à sock_hold(&smc->sk) dans smc_cdc_msg_recv(). Aucune référence n'est conservée lors de la libération du verrou.
La seule référence épinglant la socket tant que la connexion reste détectable au sein du groupe de liens est acquise dans smc_lgr_register_conn() (sock_hold) et relâchée dans __smc_lgr_unregister_conn() (sock_put), les deux opérations s'exécutant sous conns_lock. Une fois le gestionnaire libère conns_lock, une fermeture concurrente -> smc_release() -> smc_conn_free() -> smc_lgr_unregister_conn() peut libérer cette référence et détruire l'objet smc_sock ; par conséquent, l'appel ultérieur de sock_hold() dans le gestionnaire s'exécute sur une mémoire déjà libérée :
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
Seul SMC-R est concerné. Le gestionnaire de réception SMC-D est arrêté par tasklet_kill(&conn->rx_tsklet) dans smc_conn_free() avant que la connexion ne soit désenregistrée, ce qui empêche toute exécution concurrente avec l'opération de libération.
Acquérez une référence sur la socket tout en conservant conns_lock, afin que la référence d'enregistrement ne puisse plus être la dernière ; puis relâchez-la une fois le gestionnaire terminé.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.