CVE-2024-46858 in Linux
要約
〜によって VulDB • 2026年06月24日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
mptcp: pm: __timer_delete_sync における UAF(Use-After-Free)を修正する
mptcp_pm_del_add_timer にアクセスするための2つのパスが存在し、結果として競合状態が発生します:
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)
remove_anno_list_by_saddr(CPU2で実行)において、「pm.lock」によって保護されたクリティカルセクションを離れた後、エントリが解放され、mptcp_pm_del_add_timer(CPU1で実行)における UAF の発生につながります。
add_timer への参照をロック内で保持し、「entry->add_timer」ではなくこの参照を使用して sk_stop_timer_sync() を呼び出します。
list_del(&entry->list) を mptcp_pm_del_add_timer に移動し、pm ロック内で行います。また、pm ロックの外でエントリのメンバに直接アクセスしないようにすることで、同様の「entry->x」UAF を回避できます。
If you want to get best quality of vulnerability data, you may have to visit VulDB.