CVE-2026-98734
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: Bluetooth: hci_core: SCO və ISO planlamasının ləğv prosesi ilə ardıcıllığının təmin edilməsi hci_low_sent() funksiyası RCU altında bağlantını seçir, lakin kvotasını hesablayıb planlayıcıya qaytarmazdan əvvəl oxuma kilidini (read lock) buraxır. Daha sonra həmin bağlantı hci_sched_iso() və hci_sched_sco() tərəfindən ömür müdafiəsi olmadan istifadə edilir. TX işçisi RCU oxuma kilidini buraxdıqdan sonra hdev->req_workqueue üzərindəki hci_abort_conn_sync() funksiyası bağlantını heşdən silə, synchronize_rcu()-nu tamamlaya, onun növbələrini təmizləyə və onu azad edə bilər. Bu zaman hdev->workqueue üzərindəki TX işçisi hci_quote_sent() funksiyasında və ya paketləri növbədən çıxarıb conn->sent dəyişənini yeniləyərkən azad edilmiş bağlantıya müraciət edə bilər. KASAN aşağıdakıları hesabatlaşdırmışdır: BUG: KASAN: slab-use-after-free in hci_low_sent+0x730/0x840 Workqueue: hci0 hci_tx_work Call Trace: hci_low_sent+0x730/0x840 hci_sched_iso+0x25e/0x4d0 hci_tx_work+0x239/0xcb0 Allocated by task 93: __hci_conn_add+0x16f/0x1b40 hci_bind_bis+0x782/0x17b0 hci_connect_bis+0xa0/0x510 iso_sock_connect+0x589/0x1050 Freed by task 88: kfree+0x131/0x3c0 device_release+0xc8/0x240 kobject_put+0x14d/0x280 hci_conn_del+0x55a/0xe80 hci_disconnect_sync+0x156/0x180 hci_abort_conn_sync+0x3e7/0x940 hci_cmd_sync_work+0x13c/0x290 Həm SCO, həm də ISO planlamasında bağlantının seçilməsi və ötürülməsi boyunca hci_dev_lock() kilidi saxlanılmalı, beləliklə onlar bağlantının ləğvi ilə ardıcıl hala gətirilməlidir. Bu həmçinin bağlantı növbələri təmizləndikdən sonra ötürmənin tamamlanma vaxtlarının növbəyə alınmasının qarşısını alır. Ötürmə boyunca RCU-nun genişləndirilməsi təhlükəli olardı, çünki ötürmə yolu yata bilər (sleep). ISO taym-aut yoxlamasını mutex-dən kənarda saxlayın, çünki hci_link_tx_to() özü onu götürür. Əvvəlki kanal düzəlişi artıq bu mutex-i ACL və LE planlayıcılarında saxlayırdı ki, bunlar paketlər arasında SCO planlayıcısını çağırırlar. SCO gövdəsini __hci_sched_sco() funksiyasına köçürün, onu çağıranın mutex-i saxladığını təsdiqləyin və onu birbaşa bu kilidli yollardan istifadə edin. hci_tx_work()-dan gələn birbaşa çağırışlar üçün kilidləyici hci_sched_sco() örtüyünü (wrapper) saxlayın. Bu, planlama sırasını qoruyarkən cihaz mutex-inin rekursiv şəkildə əldə edilməsinin qarşısını alır. Bağlantının silinməsinin TX-i deaktiv etdiyi haqqındakı köhnəlmiş iddia silinsin.
Necə düzəltmək olar
Mənbələrdə bu zəiflik üçün düzəldilmiş versiya və ya yamaq keçidi yoxdur.
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| 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.