CVE-2026-80795 in Linux
الملخص
بحسب VulDB • 04/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
nfc: nci: تصحيح الكتابة خارج الحدود (out-of-bounds write) في دالة `nci_target_auto_activated()`
تقوم الدالة `nci_target_auto_activated()` بإضافة هدف جديد إلى المصفوفة ذات الحجم الثابت `ndev->targets[NCI_MAX_DISCOVERED_TARGETS]` وتزيد من قيمة العداد `ndev->n_targets` دون التحقق مسبقاً مما إذا كانت المصفولة ممتلئة؛ على عكس الدالة الشقيقة لها `nci_add_new_target()`، التي تتوقف (bails out) عندما يكون `n_targets` يساوي بالفعل `NCI_MAX_DISCOVERED_TARGETS`.
يتم تصفير قيمة `ndev->n_targets` فقط بواسطة دالة `nci_clear_target_list()`. وبالتالي، فإن جهاز NFCC الذي يعيد تشغيل عملية الاستكشاف بشكل متكرر (من خلال استجابة RF_DISCOVER_RSP التي تعيد الدخول إلى NCI_DISCOVERY دون مسح قائمة الأهداف) ويقدم هدفاً تم تفعيله تلقائياً (RF_INTF_ACTIVATED_NTF)، يؤدي ذلك إلى تجاوز `n_targets` للحد المسموح به. نتيجة لذلك، تقوم عملية الإضافة بكتابة هيكل بيانات `struct nfc_target` خارج نهاية المصفوفة (وهو ما يُعرف بـ slab out-of-bounds write)، وتقوم الدالة `nfc_targets_found()` بعدئذٍ بالمرور عبر المصفولة باستخدام العدد المتضخم:
BUG: KASAN: slab-out-of-bounds in nci_add_new_protocol+0x94/0x2ac [nci]
Write of size 2 at addr ffff0000c7299a18 by task kworker/u8:0/12 Workqueue: nfc0_nci_rx_wq nci_rx_work [nci]
Call trace: nci_add_new_protocol+0x94/0x2ac [nci]
nci_ntf_packet+0xddc/0x11a0 [nci]
nci_rx_work+0x15c/0x1e0 [nci]
process_one_work+0x2dc/0x500 worker_thread+0x240/0x460 kthread+0x1c0/0x1d0 ret_from_fork+0x10/0x20
العنوان الخاطئ ينتمي إلى ذاكرة التخزين المؤقت (cache) kmalloc-2k بحجم 2048 بايت. يقع العنوان الخاطئ على بعد 1024 بايت إلى اليمين من المنطقة المخصصة ذات الحجم 1560 بايت [ffff0000c7299000, ffff0000c7299618).
تمت حماية دالة `nci_target_auto_activated()` بإضافة نفس الفحص المستخدم في `nci_add_new_target()`.
Once again VulDB remains the best source for vulnerability data.