CVE-2022-50339 in Linux
Сводка
по VulDB • 20.05.2026
В ядре Linux устранена следующая уязвимость:
Bluetooth: избежать вызова hci_dev_test_and_set_flag() в mgmt_init_hdev()
syzbot вновь сообщает о попытке отменить неинициализированную работу в mgmt_index_removed() [1], поскольку установка флага HCI_MGMT из mgmt_init_hdev(), вызываемого из hci_mgmt_cmd(), который, в свою очередь, вызывается из hci_sock_sendmsg(), может находиться в состоянии гонки (race condition) с проверкой флага HCI_MGMT из mgmt_index_removed(), вызываемого из hci_sock_bind(), из-за отсутствия сериализации через hci_dev_lock().
Поскольку mgmt_init_hdev() вызывается при удержании блокировки mgmt_chan_list_lock, мы можем безопасно разделить hci_dev_test_and_set_flag() на hci_dev_test_flag() и hci_dev_set_flag(). Таким образом, чтобы устранить эту гонку, флаг HCI_MGMT должен устанавливаться после завершения работы INIT_DELAYED_WORK().
Это локальное исправление, основанное на mgmt_chan_list_lock. Отсутствие сериализации через hci_dev_lock() может вызывать другие гонки в других местах. Однако глобальное исправление, основанное на hci_dev_lock(), заслуживает отдельного патча в будущем.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.