{"id":6790,"date":"2026-09-04T18:49:17","date_gmt":"2026-09-04T10:49:17","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-72124"},"modified":"2026-09-04T18:49:17","modified_gmt":"2026-09-04T10:49:17","slug":"cve-2026-72124","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-72124","title":{"rendered":"CVE-2026-72124 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ncan: isotp: serialize"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>can: isotp: serialize TX state transitions under so-&gt;rx_lock<\/p>\n<p>The TX state machine (so-&gt;tx.state) is driven from three contexts:<br \/>\nsendmsg() claiming and progressing a transfer, the RX path consuming<br \/>\nFlow Control\/echo frames, and two hrtimers timing out a stalled<br \/>\ntransfer. Mixing a lock-free cmpxchg() claim in sendmsg() with<br \/>\nhrtimer_cancel() calls made under so-&gt;rx_lock elsewhere left windows<br \/>\nwhere a frame or timer callback could act on a state that had already<br \/>\nmoved on, corrupting an unrelated transfer.<\/p>\n<p>so-&gt;rx_lock now covers the full lifecycle of a TX claim: sendmsg()<br \/>\ntakes it to check so-&gt;tx.state is ISOTP_IDLE, switch it to<br \/>\nISOTP_SENDING, bump so-&gt;tx_gen and drain the previous transfer&#8217;s<br \/>\ntimers &#8211; all as one critical section. isotp_rcv_fc()\/isotp_rcv_cf()<br \/>\nalready run under this lock via isotp_rcv(), and isotp_rcv_echo() now<br \/>\ntakes it itself, so none of them can ever observe a transfer mid-claim.<br \/>\nThis also means a transfer can no longer be handed to sendmsg()&#8217;s<br \/>\ncleanup paths (signal or send error) while another thread is<br \/>\nconcurrently claiming or finishing it, so those paths can cancel<br \/>\ntimers and reset the state unconditionally.<\/p>\n<p>isotp_release() claims the socket the same way, so a racing sendmsg()<br \/>\nsees a consistent ISOTP_SHUTDOWN and skips arming its timer or sending.<\/p>\n<p>Only the hrtimer callbacks stay outside so-&gt;rx_lock, since they run<br \/>\nunder so-&gt;rx_lock&#8217;s cancellation elsewhere and taking it themselves<br \/>\nwould deadlock. so-&gt;tx_gen lets them recognize whether the transfer<br \/>\nthey timed out is still the one currently active, so they don&#8217;t<br \/>\nreport an error against a transfer that has since completed or been<br \/>\nsuperseded.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>can: isotp: serialize TX state transitions under so-&gt;rx_lock<\/p>\n<p>The TX state machine (so-&gt;tx.state) is driven from three contexts:<br \/>\nse<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-6790","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/6790","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=6790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}