CVE-2026-64405
Açıklama
Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: Bluetooth: hci_conn: hci_abort_conn() fonksiyonundaki null ptr deref hatası düzeltildi Bir bağlantı bekletilirken hci_abort_conn(), hci_skb_event(hdev->sent_cmd) değerini okuyordu; ancak req_status hala HCI_REQ_PEND iken hdev->sent_cmd NULL olabilir, bu da bir NULL pointer dereference ve hci_rx_work() alma yolundan kaynaklanan genel bir koruma hatasına (general protection fault) yol açıyordu. hdev->sent_cmd kontrolü yerine, devam eden bağlantı oluşturma komutu yeni bir bağlantı başına HCI_CONN_CREATE bayrağı ile takip edilir ve tüm iptaller, türe özel bir iptal fonksiyonuna yönlendirme yapan hci_cancel_connect_sync() üzerinden yürütülür. Oluşturma komutu tam olarak iki durumdan birindedir: ya hala kuyruktadır ya da yoldadır. İptal fonksiyonu, tüm karar süreci boyunca cmd_sync_work_lock kilidini tutar: işleyici her girişi kuyruktan çıkarmak için bu kilidi alır, dolayısıyla kilit tutulurken kuyruğa alınmış bir komut çalışmaya başlayamaz ve yolda olan bir komut tamamlanıp bir sonraki komutun beklemeye geçmesine izin veremez. Bu, bayrak testini ve hci_cmd_sync_cancel() işlemini işleyiciye göre atomik hale getirir; böylece kuyruktaki bir komut basitçe kuyruktan çıkarılır ve bu bağlantıya ait yoldaki bir komut, bu sırada beklemeye geçen ilgisiz bir komutu iptal etme riski olmadan iptal edilir. CIS, HCI_CONN_CREATE_CIS aracılığıyla aynı bayrak mekanizmasını kullanır ancak bağlantı bazlı olarak kuyruktan çıkarılamaz. hci_acl_create_conn_sync() ve hci_le_create_conn_sync(), oluşturma komutu tamamlandıktan sonra HCI_CONN_CREATE bayrağını temizler; ancak işleyici hala bağlantı tamamlama olayında engellenmişken, komut durum yöneticisi (örneğin denetleyici bağlantıyı reddettiğinde) hci_conn_del() aracılığıyla conn nesnesini serbest bırakabilir. Bayrağın bir serbest bırakıldıktan sonra kullanım (use-after-free) durumu oluşmadan temizlenebilmesi için oluşturma komutu boyunca conn üzerinde bir referans tutulur.
Nasıl düzeltilir
- linux linux_kernel6.1.118, 6.5, 6.6.145, 6.12.97, 6.18.39, 7.1.4 ya da sonraki bir sürüm
- git.kernel.org/stable/c/12917f591cea1af36087dba5b9ec888652f0b42a
- git.kernel.org/stable/c/61701912c58a05f6a043f097cc177a964abef348
- git.kernel.org/stable/c/70c397b62ee015e19b3924d9da741c8dda017819
- git.kernel.org/stable/c/83b22d7f7c384564fa42c3cf19bec715c693d7a2
- git.kernel.org/stable/c/903227b6168bb99fd57d4e3c9c1b5014986198e0
- git.kernel.org/stable/c/b42cb640a0493d16b61ddd267420274be15efdc1
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 6.1.83 ≤ v < 6.1.118, 6.4.16 ≤ v < 6.5, 6.5.3 ≤ v < 6.6.145, 6.7 ≤ v < 6.12.97, 6.13 ≤ v < 6.18.39, 6.19 ≤ v < 7.1.4, 7.2 | 6.1.118, 6.5, 6.6.145, 6.12.97, 6.18.39, 7.1.4 |
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.