{"id":17288,"date":"2026-09-05T02:30:57","date_gmt":"2026-09-04T18:30:57","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80784"},"modified":"2026-09-05T02:30:57","modified_gmt":"2026-09-04T18:30:57","slug":"cve-2026-80784","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80784","title":{"rendered":"CVE-2026-80784 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: pm: fix memory"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>mptcp: pm: fix memory leak from alloc-during-teardown race<\/p>\n<p>mptcp_pm_destroy() empties msk-&gt;pm.anno_list and<br \/>\nmsk-&gt;pm.userspace_pm_local_addr_list under msk-&gt;pm.lock during socket<br \/>\nteardown, dropping the lock between the two.<\/p>\n<p>A concurrent userspace PM genl ANNOUNCE on the same msk holds a sock<br \/>\nreference via mptcp_token_get_sock() and, in<br \/>\nmptcp_pm_nl_announce_doit(), calls<br \/>\nmptcp_userspace_pm_append_new_local_addr() and<br \/>\nmptcp_pm_announced_alloc(). Both take msk-&gt;pm.lock briefly to add to<br \/>\ntheir respective lists. Because the genl handler holds a sock reference,<br \/>\nmptcp_pm_destroy() may run on the same msk via mptcp_disconnect(), which<br \/>\ninvokes mptcp_destroy_common() without dropping the sock refcount,<br \/>\nbefore the handler completes.<\/p>\n<p>If the lock acquisitions interleave such that mptcp_pm_destroy() empties<br \/>\na list first, the later alloc adds its entry to a list head that nothing<br \/>\nelse iterates for this msk, and the entry leaks. kmemleak reports both<br \/>\nmptcp_pm_add_addr objects (from mptcp_pm_announced_alloc()) and<br \/>\nmptcp_pm_addr_entry objects (from<br \/>\nmptcp_userspace_pm_append_new_local_addr()) under sustained concurrent<br \/>\nANNOUNCE + close load against the userspace PM.<\/p>\n<p>Add an MPTCP_PM_DESTROYING bit in msk-&gt;pm.status, set by<br \/>\nmptcp_pm_destroy() under pm.lock before the lists are emptied and<br \/>\nchecked under pm.lock by the alloc paths. Either the alloc takes pm.lock<br \/>\nfirst, in which case its entry is on the list when mptcp_pm_destroy()<br \/>\nfrees it; or mptcp_pm_destroy() takes pm.lock first, in which case the<br \/>\nlater alloc observes the bit and refuses.<\/p>\n<p>Found by an MPTCP protocol-flow harness extending BRF (arXiv:2305.08782).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>mptcp: pm: fix memory leak from alloc-during-teardown race<\/p>\n<p>mptcp_pm_destroy() empties msk-&gt;pm.anno_list and<br \/>\nmsk-&gt;pm.userspace_pm_l<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-17288","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/17288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}