CVE-2026-98736 in Linuxالمعلومات

الملخص

بحسب VulDB • 18/10/2026

في نواة لينكس، تم إصلاح الثغرة التالية:

بلوتوث: hci_conn: قفل الوصول إلى الأصل أثناء إعداد SCO المحسن

hci_enhanced_setup_sync() يعمل على قائمة عمل الطلب (request workqueue) دون أن يكون قيد الحجز بواسطة cpi_dev_lock الذي يمسكه المتصل عند جدولة الإعداد. يقوم فحص قدرة CVSD الخاص به وfind_next_esco_param() بالإشارة إلى conn->parent بينما يمكن لقائمة عمل الاستلام فك ارتباط ذلك الأصل وإطلاقه.

يمكن للتداخل التالي أن يسبب ثغرة use-after-free:

hci_enhanced_setup_sync() hci_disconn_complete_evt() load conn->parent hci_dev_lock() hci_conn_del(ACL parent) unlink SCO child drop link's parent reference clear child->parent release ACL parent bt_link_release() kfree(parent) hci_dev_unlock() read parent->features[0][3]

المرجع المحتفظ به لطفل SCO المجدول لا يبقي الوالد الخاص بـ ACL على قيد الحياة بعد فك الارتباط. تحمي الالتزام 42de40abe25d ("بلوتوث: hci_conn: إصلاح عمر سياق إعداد SCO") الطفل المخزن في السياق المجدول، لكنها تترك هذه الوصولات إلى الأصل غير محمية.

مع تأخير تشخيصي مدته 40 مللي ثانية بعد تحميل conn->parent، فإن نواة مُجهزة مبنية على fd179f8a05be، والتي تحتوي بالفعل على 42de40abe25d، تظهر:

BUG: KASAN: slab-use-after-free in hci_enhanced_setup_sync+0xda5/0xdf0 Read of size 1 at addr ffff888102204047 by task kworker/u17:0/93 Call Trace: hci_enhanced_setup_sync+0xda5/0xdf0 hci_cmd_sync_work+0x13c/0x290 process_one_work+0x6b4/0x10e0

Allocated by task 92: __hci_conn_add+0x304/0x1df0 hci_connect_acl+0x349/0x3e0 hci_connect_sco+0x3b/0x9a0 sco_sock_connect+0x475/0xca0

Freed by task 94: kfree+0x121/0x3c0 bt_link_release+0x79/0xa0 device_release+0xc8/0x240 kobject_put+0x14d/0x280 hci_conn_del+0x524/0xe30 hci_disconn_complete_evt+0x403/0x8c0 hci_event_packet+0x71b/0xb20 hci_rx_work+0x293/0x730

العنوان الذي تم الوصول إليه هو 71 بايت داخل الوالد الخاص بـ ACL المحرر، عند بايته features[0][3]؛ طفل SCO المجدول هو كائن مختلف. يحافظ التشخيص على الوالد المحمّل عبر التأخير، متوافقًا مع فحص القدرة المُركَّب دون تعديل، ولا يغير مراجع الوالد أو مسار التفكيك.

احتفظ بـ hci_dev_lock() خلال تبديل الكوديك (codec)، بما في ذلك كل استدعاء لـ find_next_esco_param()، وأطلقه عند جميع أخطاء الاختيار. احتفظ configure_datapath_sync() خارج القسم الحرج لأنه ينتظر أحداث HCI. حافظ على اختيار المعلمات وقيم الإرجاع الحالية.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

مسؤول

Linux

حجز

25/09/2026

إفشاء

18/10/2026

الاعتدال

تمت الموافقة

إدخال

VDB-421931

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Want to stay up to date on a daily basis?

Enable the mail alert feature now!