CVE-2026-98109
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: Bluetooth: hci_core: Cihaz qeydiyyatı zamanı yarış vəziyyətinin (race condition) düzəldilməsi hci_register_dev() funksiyasında, power_on iş elementi hdev->adv_monitors_idr başladılmamış və msft_register() vasitəsilə MSFT genişlənməsi qeydiyyata alınmamışdan əvvəl hdev->req_workqueue növbəsinə əlavə edilir. HCI_QUIRK_RAW_DEVICE kimi xüsusiyyətləri olan cihazlar üçün cihazda HCI_UNCONFIGURED bayrağı təyin edilir. power_on iş elementi digər CPU-da eyni vaxtda işlədikdə, hci_power_on() cihazın konfiqurasiya edilmədiyini aşkar edir və dərhal msft_do_close() funksiyasını çağıran hci_dev_do_close() funksiyasını icra edir. Eyni zamanda, msft_register() funksiyası msft strukturunu ayırır və mutex_init(&msft->filter_lock) çağırılmazdan əvvəl onu hdev->msft_data-ya təqdim edir. Əgər hdev->msft_data artıq təyin edilibsə, lakin mutex hələ başladılmayıbsa, msft_do_close() icra olunduqda mutex_lock(&msft->filter_lock) başladılmamış mutex üzərində əməliyyat aparır və bu da DEBUG_LOCKS xəbərdarlığını tetikləyir: DEBUG_LOCKS_WARN_ON(lock->magic != lock) WARNING: kernel/locking/mutex.c:625 at __mutex_lock_common kernel/locking/mutex.c:625 [inline] WARNING: kernel/locking/mutex.c:625 at __mutex_lock+0x12d8/0x1550 kernel/locking/mutex.c:821 ... Call Trace: <TASK> msft_do_close+0x308/0x7b0 net/bluetooth/msft.c:693 hci_dev_close_sync+0x86b/0x10a0 net/bluetooth/hci_sync.c:5522 hci_dev_do_close net/bluetooth/hci_core.c:499 [inline] hci_power_on+0x32c/0x750 net/bluetooth/hci_core.c:937 process_one_work kernel/workqueue.c:3322 [inline] process_scheduled_works+0xa8e/0x14e0 kernel/workqueue.c:3405 worker_thread+0x92d/0xe10 kernel/workqueue.c:3486 kthread+0x388/0x470 kernel/kthread.c:436 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 </TASK> Bu problem, hci_register_dev() funksiyasındakı queue_work() çağırışını idr_init(&hdev->adv_monitors_idr) və msft_register(hdev) funksiyalarından sonraya keçirməklə həll edilmişdir ki, asinxron tapşırıqlar onlara daxil olmazdan əvvəl cihaz strukturları və genişlənmələri tam şəkildə başladılmış olsun. Əlavə olaraq, msft_register() funksiyasında hdev->msft_data yalnız mutex_init(&msft->filter_lock) tamamlandıqdan sonra təyin edilir.
Necə düzəltmək olar
- linux linux_kernel6.5, 6.12.111, 6.18.53, 7.2.7 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 6.4.16 ≤ v < 6.5, 6.5.3 ≤ v < 6.12.111, 6.13 ≤ v < 6.18.53, 6.19 ≤ v < 7.2.7, 7.3 | 6.5, 6.12.111, 6.18.53, 7.2.7 |
| microsoft azl3_kernel_6.6.157.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.159.1-1 | Aralıq göstərilməyib | — |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.