{"id":41104,"date":"2026-10-19T00:32:10","date_gmt":"2026-10-18T16:32:10","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98632"},"modified":"2026-10-19T00:32:10","modified_gmt":"2026-10-18T16:32:10","slug":"cve-2026-98632","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98632","title":{"rendered":"CVE-2026-98632 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: mgmt: Dequ"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>Bluetooth: mgmt: Dequeue pending mesh_send_sync entries on cancel<\/p>\n<p>In send_cancel(), pending mesh_tx objects are removed from the<br \/>\nhdev-&gt;mesh_pending list and freed via mesh_send_complete().  However, if<br \/>\na mesh transmission was already queued onto hdev-&gt;cmd_sync_work_list via<br \/>\nmesh_next(), the queued entry retains a raw pointer to mesh_tx.<\/p>\n<p>When hci_cmd_sync_work later processes the entry, it attempts to execute<br \/>\nmesh_send_sync and its destroy callback mesh_send_start_complete using<br \/>\nthe already freed mesh_tx pointer, leading to a use-after-free.<\/p>\n<p>Fix this by invoking hci_cmd_sync_dequeue() for mesh_send_sync on the<br \/>\ntarget mesh_tx before completing it.  If the entry is found and dequeued,<br \/>\nits destroy callback will complete and free the object; otherwise,<br \/>\nmesh_send_complete() is called directly.<\/p>\n<p>Additionally, ensure the transmission queue advances after cancellation<br \/>\nor errors.  In mesh_send_start_complete(), call mesh_next() on error<br \/>\nunless err is -ECANCELED, because hci_cmd_sync_dequeue() holds<br \/>\nhdev-&gt;cmd_sync_work_lock and calling mesh_next() synchronously would<br \/>\ndeadlock.  Instead, advance the queue in send_cancel() once the lock is<br \/>\nreleased and if no transmission is in progress.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>Bluetooth: mgmt: Dequeue pending mesh_send_sync entries on cancel<\/p>\n<p>In send_cancel(), pending mesh_tx objects are removed from the<br \/>\nh<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41104","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41104","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=41104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}