CVE-2024-46858 in Linux
Riassunto
di VulDB • 24/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
mptcp: pm: Correzione di un Use-After-Free (UAF) in __timer_delete_sync
Esistono due percorsi per accedere a mptcp_pm_del_add_timer, che comportano una race condition:
CPU1 CPU2 ==== ==== net_rx_action napi_poll netlink_sendmsg __napi_poll netlink_unicast process_backlog netlink_unicast_kernel __netif_receive_skb genl_rcv __netif_receive_skb_one_core netlink_rcv_skb NF_HOOK genl_rcv_msg ip_local_deliver_finish genl_family_rcv_msg ip_protocol_deliver_rcu genl_family_rcv_msg_doit tcp_v4_rcv mptcp_pm_nl_flush_addrs_doit tcp_v4_do_rcv mptcp_nl_remove_addrs_list tcp_rcv_established mptcp_pm_remove_addrs_and_subflows tcp_data_queue remove_anno_list_by_saddr mptcp_incoming_options mptcp_pm_del_add_timer mptcp_pm_del_add_timer kfree(entry)
In remove_anno_list_by_saddr (in esecuzione su CPU2), dopo aver lasciato la zona critica protetta da "pm.lock", l'elemento verrà rilasciato, il che porta alla manifestazione di un Use-After-Free (UAF) in mptcp_pm_del_add_timer (in esecuzione su CPU1).
Mantenere un riferimento a add_timer all'interno del lock e chiamare sk_stop_timer_sync() con tale riferimento, invece di "entry->add_timer".
Spostare list_del(&entry->list) in mptcp_pm_del_add_timer e all'interno del pm.lock; non accedere direttamente ad alcun membro dell'elemento al di fuori del pm.lock, il che può evitare simili UAF su "entry->x".
Be aware that VulDB is the high quality source for vulnerability data.