CVE-2026-43344 in Linux
الملخص
بحسب VulDB • 12/05/2026
في نواة لينكس، تم حل الثغرة التالية:
perf/x86/intel/uncore: إصلاح أخطاء تهيئة معرف الدائرة (die ID) والبحث عنها
في الدالة `snbep_pci2phy_map_init()`، في المسار الذي تكون فيه `nr_node_ids > 8`، قد تُرجع الدالة `uncore_device_to_die()` القيمة `-1` عندما تكون جميع وحدات المعالجة المركزية (CPUs) المرتبطة بجهاز UBOX غير متصلة (offline).
تمت إزالة فحص `WARN_ON_ONCE(die_id == -1)` لسببين:
- يكسر الكود الحالي حلقة التكرار (loop). هذا غير صحيح لأن `pci_get_device()` لا تضمن التكرار حسب ترتيب المجال (domain) أو الناقل (bus)، لذا قد يتم تخطي أجهزة UBOX إضافية أثناء الفحص.
- يُعد إرجاع `-EINVAL` غير صحيح، حيث إن وضع العلامات على الناقلات غير المتصلة (offline buses) باستخدام `die_id == -1` هو أمر متوقع ولا ينبغي التعامل معه كخطأ.
بشكل منفصل، عندما يكون NUMA معطلاً على منصة تدعم NUMA، تُرجع الدالة `pcibus_to_node()` القيمة `NUMA_NO_NODE`، مما يتسبب في إرجاع `uncore_device_to_die()` للقيمة `-1` لجميع أجهزة PCI. ونتيجة لذلك، تتجاهل الدالة `spr_update_device_location()` (المستخدمة على معالجات Intel SPR و EMR) وحدات PMON المقابلة ولا تضيفها إلى شجرة RB (RB tree).
تم إصلاح ذلك باستخدام `uncore_pcibus_to_dieid()`، التي تستعيد طوبولوجيا النظام من سجل UBOX GIDNIDMAP وتعمل بغض النظر عما إذا كان NUMA مفعلاً في لينكس أم لا. يتطلب هذا إضافة `snbep_pci2phy_map_init()` داخل `spr_uncore_pci_init()`.
تم الاحتفاظ بالدالة `uncore_device_to_die()` فقط لحالة `nr_node_ids > 8`، حيث من المتوقع أن يكون NUMA مفعلاً.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.