{"id":41281,"date":"2026-10-19T00:32:59","date_gmt":"2026-10-18T16:32:59","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98809"},"modified":"2026-10-19T00:32:59","modified_gmt":"2026-10-18T16:32:59","slug":"cve-2026-98809","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98809","title":{"rendered":"CVE-2026-98809 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: hci_sync:"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>Bluetooth: hci_sync: don&#8217;t drain cmd_sync backlog on unregister<\/p>\n<p>hci_unregister_dev() disables cmd_work and cmd_timer, then calls<br \/>\nhci_cmd_sync_clear(), whose cancel_work_sync() waits for<br \/>\nhci_cmd_sync_work() to return. That worker dequeues and runs every<br \/>\nentry on cmd_sync_work_list. With cmd_work disabled nothing reaches<br \/>\nthe controller, so each queued HCI command waits the full<br \/>\nHCI_CMD_TIMEOUT (2s).<\/p>\n<p>The backlog has no bound. Userspace can keep queuing MGMT commands<br \/>\nsuch as MGMT_OP_GET_CLOCK_INFO against a controller that doesn&#8217;t<br \/>\nanswer. Closing \/dev\/vhci then blocks in vhci_release() for<br \/>\nbacklog * 2s:<\/p>\n<p>  INFO: task syz-executor:5749 blocked for more than 143 seconds.<br \/>\n   cancel_work_sync<br \/>\n   hci_cmd_sync_clear<br \/>\n   hci_unregister_dev<br \/>\n   vhci_release<\/p>\n<p>In a local reproduction the backlog held more than 5000 entries,<br \/>\nwhich comes to hours of hang.<\/p>\n<p>Stop the worker from taking new entries once HCI_UNREGISTER is set,<br \/>\nand wake any request still waiting with -ENODEV before cancelling<br \/>\nthe work. The entries left over are destroyed with -ECANCELED by the<br \/>\nexisting sweep in hci_cmd_sync_clear(). They stay on the list until<br \/>\nthe work has stopped, so hci_cmd_sync_dequeue() and friends still see<br \/>\nthem. A callback already running may still issue another command,<br \/>\nwhich delays unregister by at most one timeout per remaining command,<br \/>\nnot by the whole backlog.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>Bluetooth: hci_sync: don&#8217;t drain cmd_sync backlog on unregister<\/p>\n<p>hci_unregister_dev() disables cmd_work and cmd_timer, then calls<br \/>\nh<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41281","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41281","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=41281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}