{"id":7510,"date":"2026-09-04T18:49:35","date_gmt":"2026-09-04T10:49:35","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74513"},"modified":"2026-09-04T18:49:35","modified_gmt":"2026-09-04T10:49:35","slug":"cve-2026-74513","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74513","title":{"rendered":"CVE-2026-74513 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ndibs: fix use-after-f"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>dibs: fix use-after-free of dmb_node in loopback attach\/detach\/unregister<\/p>\n<p>dibs_lo_attach_dmb(), dibs_lo_detach_dmb() and dibs_lo_unregister_dmb()<br \/>\nlook up the dmb_node under dmb_ht_lock, drop the lock and only then<br \/>\noperate on the node&#8217;s refcount. Nothing keeps the node alive across<br \/>\nthat window: __dibs_lo_unregister_dmb() removes the node from the hash<br \/>\ntable under the write lock and immediately frees it.<\/p>\n<p>A concurrent final put can therefore free the node between the lookup<br \/>\nand the refcount operation:<\/p>\n<p>CPU0 (attach)                     CPU1 (owner unregisters)<\/p>\n<p>read_lock_bh(&amp;dmb_ht_lock)<br \/>\nfind dmb_node (refcnt == 1)<br \/>\nread_unlock_bh(&amp;dmb_ht_lock)<br \/>\n                                  refcount_dec_and_test() 1 -&gt; 0<br \/>\n                                  write_lock_bh(&amp;dmb_ht_lock)<br \/>\n                                  hash_del(&amp;dmb_node-&gt;list)<br \/>\n                                  write_unlock_bh(&amp;dmb_ht_lock)<br \/>\n                                  kfree(dmb_node)<br \/>\nrefcount_inc_not_zero(&amp;dmb_node-&gt;refcnt)  &lt;&#8211; use-after-free<\/p>\n<p>The same window exists for the refcount_dec_and_test() calls in the<br \/>\ndetach and unregister paths.<\/p>\n<p>Close the race structurally by making hash table membership and the<br \/>\nrefcount transitions atomic with respect to each other:<\/p>\n<p>&#8211; Perform the final refcount_dec_and_test() and hash_del() in a single<br \/>\n  dmb_ht_lock write-side critical section, in both the unregister and<br \/>\n  the detach path. Freeing the node still happens after the lock is<br \/>\n  dropped, which is safe because a node whose refcount reached zero has<br \/>\n  left the hash table and can no longer be found.<\/p>\n<p>&#8211; This establishes the invariant that any node found in the hash table<br \/>\n  holds at least one reference, and that the final reference can only<br \/>\n  be dropped under the write lock. dibs_lo_attach_dmb() can thus take<br \/>\n  its reference with a plain refcount_inc() while still holding the<br \/>\n  read lock; refcount_inc_not_zero() is no longer needed.<\/p>\n<p>__dibs_lo_unregister_dmb() no longer touches the hash table and is<br \/>\nrenamed to dibs_lo_free_dmb() accordingly.<\/p>\n<p>Note: commit cc21191b584c (&quot;dibs: Move data path to dibs layer&quot;) moved<br \/>\nthe code to its current location; the race was introduced earlier by<br \/>\ncommit c3a910f2380f (&quot;net\/smc: implement DMB-merged operations of<br \/>\nloopback-ism&quot;).<\/p>\n<p>Tested SMC-D via ISM and dibs loopback.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>dibs: fix use-after-free of dmb_node in loopback attach\/detach\/unregister<\/p>\n<p>dibs_lo_attach_dmb(), dibs_lo_detach_dmb() and dibs_lo_u<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-7510","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/7510","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=7510"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7510"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}