{"id":6791,"date":"2026-09-04T18:49:17","date_gmt":"2026-09-04T10:49:17","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-72125"},"modified":"2026-09-04T18:49:17","modified_gmt":"2026-09-04T10:49:17","slug":"cve-2026-72125","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-72125","title":{"rendered":"CVE-2026-72125 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ncan: isotp: fix use-a"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>can: isotp: fix use-after-free race with concurrent NETDEV_UNREGISTER<\/p>\n<p>isotp_release() looked up the bound network device via dev_get_by_index()<br \/>\nusing the stored ifindex. During device unregistration the device is<br \/>\nunlisted from the ifindex hash before the NETDEV_UNREGISTER notifier<br \/>\nchain runs, so a concurrent isotp_release() could find no device, skip<br \/>\ncan_rx_unregister() entirely, and still proceed to free the socket.<br \/>\nSince isotp_release() had already removed itself from the isotp<br \/>\nnotifier list at that point, isotp_notify() would never get a chance to<br \/>\nclean up either, leaving a stale CAN filter that keeps pointing at the<br \/>\nfreed socket.<\/p>\n<p>Fix this the same way raw.c already does: hold a tracked reference to<br \/>\nthe bound net_device in the socket (so-&gt;dev\/so-&gt;dev_tracker) from<br \/>\nbind() onward instead of re-resolving it from the ifindex, and<br \/>\nserialize bind()\/release() with rtnl_lock() so that so-&gt;dev is always<br \/>\nconsistent with what the NETDEV_UNREGISTER notifier sees. so-&gt;dev<br \/>\nstays valid regardless of ifindex-hash unlisting, and is only ever<br \/>\ncleared by whichever of isotp_release()\/isotp_notify() gets there<br \/>\nfirst, so the filter is always removed exactly once.<\/p>\n<p>isotp_bind() now rejects a (re)bind with -EAGAIN while so-&gt;[tx|rx].state<br \/>\nisn&#8217;t ISOTP_IDLE yet, so a timer left running by a prior<br \/>\nNETDEV_UNREGISTER can&#8217;t act on a newly bound so-&gt;ifindex. Both checks<br \/>\nshare the same lock_sock() section, so there is no window in which a<br \/>\nconcurrent isotp_notify() clearing so-&gt;bound could be missed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>can: isotp: fix use-after-free race with concurrent NETDEV_UNREGISTER<\/p>\n<p>isotp_release() looked up the bound network device via dev_g<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-6791","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/6791","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=6791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}