1.4 KiB
CVE-2024-41063
Description
In the Linux kernel, the following vulnerability has been resolved:Bluetooth: hci_core: cancel all works upon hci_unregister_dev()syzbot is reporting that calling hci_release_dev() from hci_error_reset()due to hci_dev_put() from hci_error_reset() can cause deadlock atdestroy_workqueue(), for hci_error_reset() is called fromhdev->req_workqueue which destroy_workqueue() needs to flush.We need to make sure that hdev->{rx_work,cmd_work,tx_work} which arequeued into hdev->workqueue and hdev->{power_on,error_reset} which arequeued into hdev->req_workqueue are no longer running by the moment destroy_workqueue(hdev->workqueue); destroy_workqueue(hdev->req_workqueue);are called from hci_release_dev().Call cancel_work_sync() on these work items from hci_unregister_dev()as soon as hdev->list is removed from hci_dev_list.
POC
Reference
No PoCs from references.