CVE-2022-50339 in Linux
الملخص
بحسب VulDB • 16/05/2026
في نواة لينكس، تم حل الثغرة التالية:
بلوتوث: تجنب استخدام دالة `hci_dev_test_and_set_flag()` في `mgmt_init_hdev()`
تقوم syzbot مرة أخرى بالإبلاغ عن محاولة إلغاء عمل (work) غير مهيأ في `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()`، بسبب عدم وجود تسلسل (serialization) عبر `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()` يستحق أن يكون موضوعاً لرقعة (patch) مستقبلية.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.