Zafiyet.live Keşfet. Değerlendir. Düzelt. Doğrula.
  • Yama var
  • Son 7 gün

CVE-2026-99014

Linux çekirdeğinde Bluetooth hci_sync tarama kurulumu sırasında kullanım sonrası bellek erişimi hatası

Linux

Yüksek 7,8 CVSS 3.1
Yayımlandı
Güncellendi
24 Eki 2026
Açık yaşı
5 gün
Kaydı açan
Linux

ÖzetTürkçe

Linux çekirdeğinde, tarama kurulumu sırasında PA sync taraması için hci_le_set_ext_scan_param_sync fonksiyonu, hci_sent_cmd_data üzerinden alınan adresi kullanır; bu adres sent_cmd veya req_skb tutucularının belleğini ödünç alır ancak bu skb'lere referans tutmaz. Tarama işçisi req_workqueue üzerinde, hci_cmd_work ise ayrı bir aygıt iş kuyruğunda çalışır. Tarama işçisi sent_cmd değerini yükledikten sonra komut işçisi bunu serbest bırakıp değiştirebilir; komut yükü ise yardımcı fonksiyondan dönüş ile adres karşılaştırması arasında da serbest kalabilir. Bağlantı aramasının RCU kritik bölümü komut skb'sini korumaz. KASAN, hci_sent_cmd_data fonksiyonunda slab kullanım sonrası bellek erişimi (slab-use-after-free) hatası bildirmiştir. Düzeltmede, adres anlık görüntüsünü sent_cmd değişimiyle eşitlemek için hdev->lock kilidi kullanılır; req_skb değişimi ve tamamlanma temizliği de aynı kilitle korunur. Adres kilit serbest bırakılmadan önce kopyalanır ve mevcut RCU korumalı bağlantı aramasında bu kopya kullanılır. Mutex, komut gönderilmeden veya beklenmeden önce serbest bırakılır; böylece arama ve tamamlanma sırası korunur. CVSS 3.1 vektörü: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, puan 7.8 (YÜKSEK).

Kaynaktaki açıklama (İngilizce)

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: hci_sync: Fix command skb lifetime during scan setup

During PA sync scan setup, hci_le_set_ext_scan_param_sync() gets the
address used for the PA_LINK lookup from hci_sent_cmd_data(). The
returned pointer borrows storage from sent_cmd or req_skb, without
holding a reference to either skb.

The scan worker runs on req_workqueue while hci_cmd_work() runs on the
separate device workqueue. After the scan worker loads sent_cmd, the
command worker can free and replace it before hci_sent_cmd_data()
dereferences the skb. The command payload can also be freed between
returning from the helper and comparing the address. The connection
lookup's RCU critical section does not protect the command skb.

KASAN reported:

BUG: KASAN: slab-use-after-free in hci_sent_cmd_data+0x27c/0x2f0
Workqueue: hci0 hci_cmd_sync_work
Call Trace:
hci_sent_cmd_data+0x27c/0x2f0
hci_le_set_scan_param_sync+0x43a/0x850
hci_passive_scan_sync+0xb09/0x1460
hci_update_passive_scan_sync+0x47c/0x6e0
hci_le_pa_create_sync+0x200/0xa70
hci_cmd_sync_work+0x13c/0x290

Allocated by task 95:
skb_clone+0x13f/0x340
hci_cmd_work+0x2a9/0x7e0

Freed by task 95:
kmem_cache_free+0xba/0x3a0
hci_cmd_work+0x29c/0x7e0

Use hdev->lock to serialize the address snapshot with sent_cmd
replacement. Protect req_skb replacement and completion cleanup with
the same lock because the helper falls back to that skb. Copy the
address before releasing the lock and use the copy for the existing
RCU-protected connection lookup. Release the mutex before sending or
waiting for commands, preserving the lookup and completion ordering.

Bu açığın açıklamasını Türkçeye çevirdik. Adım adım çözüm önerilerini kritik ve yeni açıklar için hazırlıyoruz; düzeltilmiş sürüm aşağıdaki tabloda, ayrıntılar üreticinin duyurusunda.

Etkilenen sürümler1 yazılım

YazılımEtkilenenDüzeltildiği sürüm
Linux ≥ 6.6.28, < 6.6.160 6.6.160
≥ 6.8.7, < 6.9 6.9
6.9 –
< 6.9 Etkilenmiyor –
≥ 6.6.160 Etkilenmiyor –
≥ 6.12.114 Etkilenmiyor –
≥ 6.18.57 Etkilenmiyor –
≥ 7.2.11 Etkilenmiyor –

Kaynaklar7 kaynak

Kayıt geçmişi

  1. Yayımlandı

İlgili açıklar

Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.