{"id":41161,"date":"2026-10-19T00:32:24","date_gmt":"2026-10-18T16:32:24","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98689"},"modified":"2026-10-19T00:32:24","modified_gmt":"2026-10-18T16:32:24","slug":"cve-2026-98689","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98689","title":{"rendered":"CVE-2026-98689 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nthunderbolt: Don&#8217;t ac"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>thunderbolt: Don&#8217;t access a DP tunnel after its DPRX read was canceled<\/p>\n<p>tb_dp_dprx_work() checks -&gt;dprx_canceled before it takes tb-&gt;lock so it<br \/>\nmisses a tb_dp_dprx_stop() that could not cancel the already running<br \/>\nwork. It then polls the DPRX capabilities and runs the callback for a<br \/>\ntunnel that has already been torn down while the domain is suspending or<br \/>\ngoing away.<\/p>\n<p>This can be hit by cancelling the DPRX read from outside the ordered<br \/>\ntb-&gt;wq: During suspend tb_disconnect_and_release_dp() does just this and<br \/>\nwith a later patch tb_stop() will do it as well. The latter in combination<br \/>\nwith the Apple NHI where the DPRX read never completed is how I hit<br \/>\nthis.<\/p>\n<p>Check the flag with tb-&gt;lock held instead and check it again in<br \/>\ntb_dp_tunnel_active() because the callback runs after the lock has been<br \/>\ndropped again.<\/p>\n<p>Also clear the flag in tb_dp_dprx_start() so that it only ever describes<br \/>\nthe work that is currently in flight.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>thunderbolt: Don&#8217;t access a DP tunnel after its DPRX read was canceled<\/p>\n<p>tb_dp_dprx_work() checks -&gt;dprx_canceled before it takes tb<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41161","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41161","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=41161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}