CVE-2026-78117 in Zephyrالمعلومات

الملخص

بحسب VulDB • 22/10/2026

يحتوي برنامج تشغيل Infineon PSOC 6 BLESS HCI في الملف `drivers/bluetooth/hci/hci_infineon_psoc6_bless.c` على وصف لحزمة HCI الصادرة (HCI packet descriptor) في متغير محدد بنطاق الملف، وهو `static cy_stc_ble_hci_tx_packet_info_t hci_tx_pkt`. تقوم الدالة `psoc6_bless_send()` بتصفير وتعبئة حقول `packetType` و `dataLength` و `data` الخاصة بهذا الوصف قبل الحصول على قفل التسلسل (semaphore) الخاص بـ `psoc6_bless_operation_sem`، وبالتالي فإن القفل الذي يحمي تسلسل العمليات في برنامج التشغيل لا يحمي سوى الاستدعاء لـ `Cy_BLE_SoftHciSendAppPkt()` وليس الحالة المشتركة التي تقرأها هذه الدالة.

لا تضمن وحدة التحكم Bluetooth وجود مرسل HCI واحد فقط. يتم توجيه معظم عمليات الإرسال عبر قائمة عمل معالج TX التعاونية (cooperative TX-processor work queue)، ولكن دالة `bt_hci_cmd_send()` تتجاوز عمود cmd_tx_queue الخاص بـ bt_dev بشكل متعمد عند التعامل مع الأمر BT_HCI_OP_HOST_NUM_COMPLETED_PACKETS، وتقوم باستدعاء `bt_send()` مباشرة من خيط المُستدعي (caller's thread)؛ وهذا المستدعي هو دالة `bt_hci_host_num_completed_packets()`, وهي استجابة تدمير acl_in_pool التي تعمل على أي خيط يقوم بإزالة المرجع الأخير لحزمة ACL مستلمة. تكون قيمة CONFIG_BT_HCI_ACL_FLOW_CONTROL افتراضياً "y" في اللوحات الداعمة لهذا برنامج التشغيل، وتقوم التطبيقات التي تُرجع -EINPROGRESS من استجابتها لاستقبال L2CAP (L2CAP recv callback) وتستدعي لاحقاً `bt_l2cap_chan_recv_complete()` بإزالة هذا المرجع من خيطها الخاص القابل للتوقف المسبق. يرفع الزميل البعيد الذي يولد حركة مرور Bluetooth بشكل متزامن مع عمليات الإرسال الخاصة بالجهاز معدل التصادمات.

عند تداخل عمليتي إرسال، يمكن لحامل القفل أن يسلم الوصف إلى وحدة التحكم بحيث يأتي `dataLength` من حزمة شبكة (net_buf) واحدة بينما يأتي مؤشر البيانات (`data pointer`) من أخرى — أو قد تكون الحزمة المعنية قد أُعيدت بالفعل إلى مخزنها. تقوم وحدة التحكم بعد ذلك بنسخ ونقل ما يصل إلى حمولة HCI/ACL كاملة بدءاً من حزمة أقصر أو معاد تدويرها، مما يؤدي إلى كشف محتويات الذاكرة العشوائية (RAM) المجاورة للزميل المتصل؛ وتؤدي التداخلات الأخرى إلى تكرار حزمة HCI واحدة وإسقاط أخرى بصمت، مما يعطل الاتصال. يقرأ برنامج التشغيل الوصف المشترك فقط، لذا لا ينتج عن ذلك أي تلف في الذاكرة أو primitive كتابة، والبايتات المكشوفة ليست مختارة من قبل المهاجم. يجعل الإصلاح الوصف متغيراً محلياً داخل `psoc6_bless_send()`, مما يلغي الحالة المشتركة؛ وتقوم دالة `Cy_BLE_SoftHciSendAppPkt()` بنسخ الحزمة قبل الإرجاع، لذا لا تحتاج إلى البقاء حية بعد انتهاء الاستدعاء.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

مسؤول

Zephyr

حجز

22/08/2026

إفشاء

21/10/2026

الاعتدال

تمت الموافقة

إدخال

VDB-424970

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Want to know what is going to be exploited?

We predict KEV entries!