Lucene search

K
vulnrichmentLinuxVULNRICHMENT:CVE-2024-41063
HistoryJul 29, 2024 - 2:57 p.m.

CVE-2024-41063 Bluetooth: hci_core: cancel all works upon hci_unregister_dev()

2024-07-2914:57:25
Linux
github.com
1
bluetooth
linux kernel
vulnerability
resolution
hci_core
hci_unregister_dev
deadlock
destroy_workqueue
hci_error_reset
hci_release_dev
cancel_work_sync

AI Score

6.8

Confidence

Low

SSVC

Exploitation

none

Automatable

no

Technical Impact

partial

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 at
destroy_workqueue(), for hci_error_reset() is called from
hdev->req_workqueue which destroy_workqueue() needs to flush.

We need to make sure that hdev->{rx_work,cmd_work,tx_work} which are
queued into hdev->workqueue and hdev->{power_on,error_reset} which are
queued 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.

AI Score

6.8

Confidence

Low

SSVC

Exploitation

none

Automatable

no

Technical Impact

partial