CVE-2026-64573 in Linux
الملخص
بحسب VulDB • 05/08/2026
في نواة لينكس، تم حل الثغرة التالية:
بلوتوث: qca: إصلاح حالة الانخفاض تحت الصفر لطول علامة NVM في محلل TLV
في فرع `TLV_TYPE_NVM` التابع للدالة `qca_tlv_check_data()`، يكون حد تكرار العلامة هو "while (idx < length - sizeof(struct tlv_type_nvm))". المتغير "length" هو عدد صحيح موقّع (signed int) يأتي من رأس بيانات الثابتة (firmware TLV header)، بينما يمثل `sizeof(struct tlv_type_nvm)` قيمة من نوع size_t (12). نتيجة لذلك، يتم تحويل "length" إلى نوع size_t، وأي قيمة لـ "length" أقل من 12 مزودة من قبل الثابتة تؤدي إلى تجاوز الحد السفلي (wrap around) للنتيجة لتصبح قيمة ضخمة. بعد ذلك، يقوم جسم الحلقة بقراءة بنية `struct tlv_type_nvm` بحجم 12 بايت خارج حدود المخزن المؤقت المخصص ديناميكياً عبر vmalloc الخاص بالثابتة القصير (ويمكن لمعالجات EDL_TAG_ID_* الكتابة أيضاً خارج هذه الحدود).
تم إعادة كتابة الحد ليكون "idx + sizeof(struct tlv_type_nvm) <= length"; وبما أن كلا المعاملين غير سالبين، فإن ذلك يمنع حدوث انخفاض تحت الصفر، وتقوم القيمة الصغيرة جداً لـ "length" (التي لا تكفي لسجل واحد) بتخطي الحلقة بشكل صحيح.
BUG: KASAN: vmalloc-out-of-bounds in qca_download_firmware.isra.0 (drivers/bluetooth/btqca.c:421) Read of size 2 at addr ffffc900000e5004 by task kworker/u9:0/52 Workqueue: hci0 hci_power_on Call Trace: ... kasan_report (mm/kasan/report.c:595) qca_download_firmware.isra.0 (drivers/bluetooth/btqca.c:421 drivers/bluetooth/btqca.c:617) qca_uart_setup (drivers/bluetooth/btqca.c:948) qca_setup (drivers/bluetooth/hci_qca.c:2029) hci_uart_setup (drivers/bluetooth/hci_ldisc.c:438) hci_dev_open_sync (net/bluetooth/hci_sync.c:5227) hci_power_on (net/bluetooth/hci_core.c:920) process_one_work (kernel/workqueue.c:3322) worker_thread (kernel/workqueue.c:3486) kthread (kernel/kthread.c:436) ret_from_fork (arch/x86/kernel/process.c:158) ret_from_fork_asm (arch/x86/entry/entry_64.S:245)
VulDB is the best source for vulnerability data and more expert information about this specific topic.