CVE-2024-46858
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
27/09/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
mptcp: pm: Fix uaf in __timer_delete_sync<br />
<br />
There are two paths to access mptcp_pm_del_add_timer, result in a race<br />
condition:<br />
<br />
CPU1 CPU2<br />
==== ====<br />
net_rx_action<br />
napi_poll netlink_sendmsg<br />
__napi_poll netlink_unicast<br />
process_backlog netlink_unicast_kernel<br />
__netif_receive_skb genl_rcv<br />
__netif_receive_skb_one_core netlink_rcv_skb<br />
NF_HOOK genl_rcv_msg<br />
ip_local_deliver_finish genl_family_rcv_msg<br />
ip_protocol_deliver_rcu genl_family_rcv_msg_doit<br />
tcp_v4_rcv mptcp_pm_nl_flush_addrs_doit<br />
tcp_v4_do_rcv mptcp_nl_remove_addrs_list<br />
tcp_rcv_established mptcp_pm_remove_addrs_and_subflows<br />
tcp_data_queue remove_anno_list_by_saddr<br />
mptcp_incoming_options mptcp_pm_del_add_timer<br />
mptcp_pm_del_add_timer kfree(entry)<br />
<br />
In remove_anno_list_by_saddr(running on CPU2), after leaving the critical<br />
zone protected by "pm.lock", the entry will be released, which leads to the<br />
occurrence of uaf in the mptcp_pm_del_add_timer(running on CPU1).<br />
<br />
Keeping a reference to add_timer inside the lock, and calling<br />
sk_stop_timer_sync() with this reference, instead of "entry->add_timer".<br />
<br />
Move list_del(&entry->list) to mptcp_pm_del_add_timer and inside the pm lock,<br />
do not directly access any members of the entry outside the pm lock, which<br />
can avoid similar "entry->x" uaf.
Impact
Base Score 3.x
7.00
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.10 (including) | 6.1.111 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.52 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.10.11 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc7:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/12134a652b0a10064844ea235173e70246eba6dc
- https://git.kernel.org/stable/c/3554482f4691571fc4b5490c17ae26896e62171c
- https://git.kernel.org/stable/c/6452b162549c7f9ef54655d3fb9977b9192e6e5b
- https://git.kernel.org/stable/c/67409b358500c71632116356a0b065f112d7b707
- https://git.kernel.org/stable/c/b4cd80b0338945a94972ac3ed54f8338d2da2076
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html
- https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html



