CVE-2026-43023
Açıklama
Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: Bluetooth: SCO: sco_sock_connect() fonksiyonundaki yarış durumları düzeltildi sco_sock_connect(), soket kilidini tutmadan sk_state ve sk_type kontrollerini gerçekleştirmektedir. Aynı soket üzerinde eşzamanlı olarak gerçekleştirilen iki connect() sistem çağrısı da bu kontrolü geçip sco_connect() fonksiyonuna girebilir ve bu durum serbest bırakıldıktan sonra kullanım (use-after-free) hatasına yol açabilir. Hatalı senaryo üç katılımcıyı içermektedir ve ek günlükleme araçlarıyla doğrulanmıştır: Thread A (connect): HCI disconnect: Thread B (connect): sco_sock_connect(sk) sco_sock_connect(sk) sk_state==BT_OPEN sk_state==BT_OPEN (geçti, kilit yok) (geçti, kilit yok) sco_connect(sk): sco_connect(sk): hci_dev_lock hci_dev_lock hci_connect_sco <- engellendi -> 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 (engelleme kalktı) 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 durumundaki bir soketi tekrar BT_CONNECT durumuna getirir. Sonraki temizleme işlemi çift sock_put() çağrısını ve serbest bırakıldıktan sonra kullanım (use-after-free) hatasını tetikler. Bu sırada conn1, sco_conn_del() ilişkilendirmeyi temizlediğinde öksüz kaldığı için sızıntıya neden olur. Bu sorun şu şekilde düzeltilmiştir: - Eşzamanlı bağlantı denemelerini sıraya koymak için sco_sock_connect() içerisindeki sk_state/sk_type kontrollerinden önce lock_sock() çağrısı taşındı. - sk_type != SOCK_SEQPACKET kontrolünün sadece hata atamak yerine gerçekten hatayı döndürmesi sağlandı. - Kilitler arasındaki zaman penceresinde meydana gelen durum değişikliklerini yakalamak için sco_connect() içerisinde lock_sock() sonrası bir durum yeniden kontrolü eklendi. - Bir soketin birden fazla bağlantıya çift bağlanmasını önlemek için sco_chan_add() içerisine sco_pi(sk)->conn kontrolü eklendi. - HCI bağlantı sızıntılarını önlemek için sco_chan_add başarısız olduğunda hci_conn_drop() çağrısı eklendi.
Nasıl düzeltilir
- linux linux_kernel6.1.168, 6.6.134, 6.12.81, 6.18.22, 6.19.12 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| 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 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.