CVE-2023-54164

Yüksek

Açıklama

Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: Bluetooth: ISO: iso_conn ile ilgili kilitleme ve geçerlilik sorunları düzeltildi sk->sk_state, iso_pi(sk)->conn ifadesinin geçerli olup olmadığını belirtir. sk_state değerini kontrol eden/güncelleyen ve conn erişimi sağlayan işlemler lock_sock kilidini tutmalıdır; aksi takdirde yarış durumu (race condition) oluşabilir. Kilitlerin alınma sırası hci_dev_lock > lock_sock > iso_conn_lock şeklindedir; bu durum connect/disconnect_cfm -> iso_conn_del -> iso_chan_del akışında olduğu gibidir. sk_state ve conn güncellenirken lock_sock kilidinin kullanılması için iso_connect_cis/bis ve sendmsg/recvmsg fonksiyonlarındaki kilitleme işlemleri düzeltilmiştir. iso_conn_del işlemi iso_conn yapısını serbest bıraktığından, iso_connect_cis/bis sırasında gerçekleşmemelidir. Bunu önlemek için hdev->lock daha uzun süre tutulur. Kilitler sırayla alındığı için bu işlem, 241f51931c35 ("Bluetooth: ISO: Avoid circular locking dependency") commit'i ile düzeltilen sorunu yeniden ortaya çıkarmamalıdır. iso_connect_* fonksiyonu hdev->lock kilidini almadan önce lock_sock kilidinin serbest bırakılmasını sağlayan iso_sock_connect içerisindeki düzeltme korunmuştur. Benzer şekilde 6a5ad251b7cd ("Bluetooth: ISO: Fix possible circular locking dependency") commit'i için de aynı durum geçerlidir. lock_sock'tan önce iso_conn_lock kilidinin alınmamasını sağlayan iso_conn_ready içerisindeki düzeltme korunmuştur. iso_conn_add, geçerli bir hcon içeren iso_conn döndürmelidir. Bağlantı kesme zaman aşımı bekleyen eski bir CIS bağlantısı yeniden kullanılırken de bu durum sağlanmıştır (__iso_sock_close içerisinde conn->hcon NULL olarak ayarlanır). iso_connect_cis içinde iso_chan_add sonrası iso_conn_del izleme kaydı: =============================================================== iso_sock_create:771: sock 00000000be9b69b7 iso_sock_init:693: sk 000000004dff667e iso_sock_bind:827: sk 000000004dff667e 70:1a:b8:98:ff:a2 type 1 iso_sock_setsockopt:1289: sk 000000004dff667e iso_sock_setsockopt:1289: sk 000000004dff667e iso_sock_setsockopt:1289: sk 000000004dff667e iso_sock_connect:875: sk 000000004dff667e iso_connect_cis:353: 70:1a:b8:98:ff:a2 -> 28:3d:c2:4a:7e:da hci_get_route:1199: 70:1a:b8:98:ff:a2 -> 28:3d:c2:4a:7e:da hci_conn_add:1005: hci0 dst 28:3d:c2:4a:7e:da iso_conn_add:140: hcon 000000007b65d182 conn 00000000daf8625e __iso_chan_add:214: conn 00000000daf8625e iso_connect_cfm:1700: hcon 000000007b65d182 bdaddr 28:3d:c2:4a:7e:da status 12 iso_conn_del:187: hcon 000000007b65d182 conn 00000000daf8625e, err 16 iso_sock_clear_timer:117: sock 000000004dff667e state 3 <Not: sk_state BT_BOUND (3) olduğundan, iso_connect_cis bu noktada hala çalışmaktadır> iso_chan_del:153: sk 000000004dff667e, conn 00000000daf8625e, err 16 hci_conn_del:1151: hci0 hcon 000000007b65d182 handle 65535 hci_conn_unlink:1102: hci0: hcon 000000007b65d182 hci_chan_list_flush:2780: hcon 000000007b65d182 iso_sock_getsockopt:1376: sk 000000004dff667e iso_sock_getname:1070: sock 00000000be9b69b7, sk 000000004dff667e iso_sock_getname:1070: sock 00000000be9b69b7, sk 000000004dff667e iso_sock_getsockopt:1376: sk 000000004dff667e iso_sock_getname:1070: sock 00000000be9b69b7, sk 000000004dff667e iso_sock_getname:1070: sock 00000000be9b69b7, sk 000000004dff667e iso_sock_shutdown:1434: sock 00000000be9b69b7, sk 000000004dff667e, how 1 __iso_sock_close:632: sk 000000004dff667e state 5 socket 00000000be9b69b7 <Not: iso_chan_del BT_CLOSED (6) olarak ayarlasa bile sk_state BT_CONNECT (5)'tir. Sadece iso_connect_cis bunu BT_CONNECT yapar, dolayısıyla iso_chan_del işlemi iso_chan_add ile iso_connect_cis sonu arasında gerçekleşmiş olmalıdır.> BUG: kernel NULL pointer dereference, address: 0000000000000000 PGD 8000000006467067 P4D 8000000006467067 PUD 3f5f067 PMD 0 Oops: 0000 [#1] PREEMPT SMP PTI Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-1.fc38 04/01/2014 RIP: 0010:__iso_sock_close (net/bluetooth/iso.c:664) bluetooth =============================================================== iso_connect_cis içinde iso_chan_add öncesi iso_conn_del izleme kaydı: =============================================================== iso_connect_cis:356: 70:1a:b8:98:ff:a2 -> 28:3d:c2:4a:7e:da ... iso_conn_add:140: hcon 0000000093bc551f conn 00000000768ae504 hci_dev_put:1487: hci0 orig refcnt 21 hci_event_packet:7607: hci0: e ---kesildi---

ÖnemYüksek
CVSS8.0
İstismar olasılığı—
ÜrünLinux
Yayın30 Ara 2025
İlk görülme30 Ara 2025

Nasıl düzeltilir

Güncelleyin
  • Linux Linuxe969bfed84c1f88dc722a678ee08488e86f0ec1a, 88ad50f2b843a510bd7c922c0a4e2484aff9d645, d40ae85ee62e3666f45bc61864b22121346f88ef, 6.1.42 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linuxc524f9561c657b8af26dd4f67092b8928261aa62 ≤ v < e969bfed84c1f88dc722a678ee08488e86f0ec1a, 241f51931c35085449502c10f64fb3ecd6e02171 ≤ v < 88ad50f2b843a510bd7c922c0a4e2484aff9d645, 241f51931c35085449502c10f64fb3ecd6e02171 ≤ v < d40ae85ee62e3666f45bc61864b22121346f88ef, 2539cbc625c560d5432e2f0fc04bfe4a889cf737, 6.1.9 ≤ v < 6.1.42, 6.2e969bfed84c1f88dc722a678ee08488e86f0ec1a, 88ad50f2b843a510bd7c922c0a4e2484aff9d645, d40ae85ee62e3666f45bc61864b22121346f88ef, 6.1.42

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.

Intelligence 360 paketinde

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.

CVE-2023-54164 · Linux · Dark Radar