{"id":6789,"date":"2026-09-04T18:49:17","date_gmt":"2026-09-04T10:49:17","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-72123"},"modified":"2026-09-04T18:49:17","modified_gmt":"2026-09-04T10:49:17","slug":"cve-2026-72123","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-72123","title":{"rendered":"CVE-2026-72123 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ncan: bcm: defer rx_op"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>can: bcm: defer rx_op deallocation to workqueue to fix thrtimer UAF<\/p>\n<p>Commit f1b4e32aca08 (&#8220;can: bcm: use call_rcu() instead of costly<br \/>\nsynchronize_rcu()&#8221;) replaced synchronize_rcu() in bcm_delete_rx_op()<br \/>\nwith call_rcu() and introduced the RX_NO_AUTOTIMER flag.<\/p>\n<p>However, this flag check was omitted for thrtimer in the packet rx<br \/>\nfast-path. During BCM RX operation teardown, a concurrent RCU reader<br \/>\n(bcm_rx_handler) can race and re-arm thrtimer via<br \/>\nbcm_rx_update_and_send() after call_rcu() has been scheduled.  Once<br \/>\nthe RCU grace period elapses, bcm_op is freed.  The subsequently<br \/>\nfiring thrtimer then dereferences the deallocated op, causing a UAF.<\/p>\n<p>Adding flag checks to the rx fast-path (bcm_rx_update_and_send) does not<br \/>\nfully close the TOCTOU race and introduces latency for every CAN frame.<br \/>\nConversely, calling hrtimer_cancel() directly inside the RCU callback<br \/>\n(softirq context) is fatal as hrtimer_cancel() can sleep, triggering<br \/>\na &#8220;scheduling while atomic&#8221; panic.<\/p>\n<p>Resolve this by deferring the timer cancellation and memory free to a<br \/>\ndedicated unbound workqueue (bcm_wq).  The RCU callback now queues a<br \/>\nwork item to bcm_wq, which safely cancels both timers and deallocates<br \/>\nmemory in sleepable process context.  A dedicated workqueue is used to<br \/>\nprevent system-wide WQ saturation and is cleanly flushed\/destroyed<br \/>\non module unload to avoid rmmod page faults.<\/p>\n<p>Since the deferred work can now outlive the calling context by an<br \/>\nunbounded amount, also take a reference on op-&gt;sk when it is assigned<br \/>\nand drop it only once the deferred work has cancelled both timers, so a<br \/>\nsocket can no longer be freed out from under a still-armed timer whose<br \/>\ncallback (bcm_send_to_user()) dereferences op-&gt;sk.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>can: bcm: defer rx_op deallocation to workqueue to fix thrtimer UAF<\/p>\n<p>Commit f1b4e32aca08 (&#8220;can: bcm: use call_rcu() instead of cost<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-6789","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/6789","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=6789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}