CVE-2026-43023
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: Bluetooth: SCO: sco_sock_connect() funksiyasındakı yarış şəraitinin (race condition) düzəldilməsi sco_sock_connect() funksiyası soket kilidini saxlamadan sk_state və sk_type dəyişənlərini yoxlayır. Eyni soket üzərində iki paralel connect() sistem çağırışı hər ikisi yoxlamadan keçib sco_connect() funksiyasına daxil ola bilər ki, bu da use-after-free xətasına səbəb olur. Səhv ssenari üç iştirakçını əhatə edir və əlavə loqlama instrumentasiyası ilə təsdiqlənmişdir: Thread A (connect): HCI disconnect: Thread B (connect): sco_sock_connect(sk) sco_sock_connect(sk) sk_state==BT_OPEN sk_state==BT_OPEN (keçidi, kilidsiz) (keçidi, kilidsiz) sco_connect(sk): sco_connect(sk): hci_dev_lock hci_dev_lock hci_connect_sco <- bloklandı -> hcon1 sco_conn_add->conn1 lock_sock(sk) sco_chan_add: conn1->sk = sk sk->conn = conn1 sk_state=BT_CONNECT release_sock hci_dev_unlock hci_dev_lock sco_conn_del: lock_sock(sk) sco_chan_del: sk->conn=NULL conn1->sk=NULL sk_state= BT_CLOSED SOCK_ZAPPED release_sock hci_dev_unlock (blokdan çıxdı) hci_connect_sco -> hcon2 sco_conn_add -> conn2 lock_sock(sk) sco_chan_add: sk->conn=conn2 sk_state= BT_CONNECT // zombi sk! release_sock hci_dev_unlock Thread B, BT_CLOSED + SOCK_ZAPPED statuslu soketi yenidən BT_CONNECT statusuna qaytarır. Sonrakı təmizləmə prosesi ikiqat sock_put() və use-after-free xətasını tetikləyir. Bu arada, sco_conn_del() assosiasiyanı təmizlədikdə conn1 yetim qaldığı üçün sızma baş verir. Bu problem aşağıdakılarla həll edilmişdir: - Paralel qoşulma cəhdlərini ardıcıl etmək üçün sco_sock_connect() funksiyasında lock_sock() çağırışının sk_state/sk_type yoxlamalarından əvvələ keçirilməsi - sk_type != SOCK_SEQPACKET yoxlamasının sadəcə mənimsətmə yerinə, faktiki olaraq xətanı qaytarması üçün düzəldilməsi - Kilidlər arasındakı zaman kəsiyində status dəyişikliklərini tutmaq üçün sco_connect() funksiyasında lock_sock()-dan sonra statusun yenidən yoxlanılmasının əlavə edilməsi - Soketin birdən çox bağlantıya ikiqat bağlanmasının qarşısını almaq üçün sco_chan_add() funksiyasına sco_pi(sk)->conn yoxlamasının əlavə edilməsi - HCI bağlantı sızmalarının qarşısını almaq üçün sco_chan_add uğursuz olduqda hci_conn_drop() funksiyasının əlavə edilməsi
Necə düzəltmək olar
- linux linux_kernel6.1.168, 6.6.134, 6.12.81, 6.18.22, 6.19.12 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.1.109 ≤ v < 6.1.168, 6.3.1 ≤ v < 6.6.134, 6.7 ≤ v < 6.12.81, 6.13 ≤ v < 6.18.22, 6.19 ≤ v < 6.19.12, 6.3, 7.0 | 6.1.168, 6.6.134, 6.12.81, 6.18.22, 6.19.12 |
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.