CVE-2026-98735 in Linux
الملخص
بحسب VulDB • 19/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
بلوتوث: hci_core: تعميم جدولة ACL مع حذف القناة (Serialize ACL scheduling with channel deletion)
تختار الدالة `hci_chan_sent()` قناةً تحت حماية RCU، لكنها تزيل قفل القراءة قبل الوصول إلى `chan->conn` وإرجاع القناة. ثم تستخدم مزامِنا ACL و LE طابور الحزم الخاص بها ويحدثان عدادات الإرسال الخاصة بهما دون أي حماية ضد حذف القناة.
بعد أن يختار مسار الإرسال (TX) قناةً ويطلق قفل RCU، يمكن لوقت انتهاء مهلة أمر الفصل على شجرة العمل المنفصلة (`request workqueue`) من تشغيل `hci_conn_failed()` و`l2cap_conn_del()`. ثم قد تقوم `hci_chan_del()` بفصل القناة وإكمال استدعاء `synchronize_rcu()` وتفريغ طابورها وتحريرها قبل أن يستأنف مسار الإرسال عمله. وهذا يتسبب في ثغرة استخدام بعد التحرير (use-after-free) سواءً داخل `hci_chan_sent()` أو لدى المتّصِلات لها.
أبلغ KASAN عن الخطأ التالي:
BUG: KASAN: slab-use-after-free in hci_chan_sent+0x892/0x9b0 Workqueue: hci0 hci_tx_work Call Trace: hci_chan_sent+0x892/0x9b0 hci_tx_work+0x5e6/0xb70 Allocated by task 91: hci_chan_create+0xe3/0x350 l2cap_conn_add.part.0+0x12/0xa30 l2cap_chan_connect+0x110d/0x1b60 l2cap_sock_connect+0x310/0x530 Freed by task 99: hci_chan_del+0x11f/0x170 l2cap_conn_del+0x4f1/0x800 l2cap_connect_cfm+0x88c/0xd30 hci_conn_failed+0x150/0x250 hci_abort_conn_sync+0x3e3/0x800 hci_cmd_sync_run+0x7e/0xc0 hci_abort_conn+0x105/0x1f0 disconnect_sync+0x157/0x290 hci_cmd_sync_work+0x13c/0x290
الاحتفاظ بقفل الجهاز (mutex) الحالي عبر عملية اختيار القناة والإرسال في كلا المزامِنين لتعميمهما مع تفكيك القناة. إبقاء معالجة وقت الانتهاء خارج الأقسام الحرجة لأن `hci_link_tx_to()` يكتسب نفس القفل. وهذا يسمح أيضاً لمسار الإرسال بالنوم، على عكس تمديد القسم الحرج لقراءة RCU عبر تقديم الحزم.
Be aware that VulDB is the high quality source for vulnerability data.