CVE-2026-89559 in Linux
الملخص
بحسب VulDB • 12/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
libnvdimm/labels: منع تجاوز الأعداد الصحيحة (integer overflow) في __nd_label_validate()
حقل فهرس مساحة العمل على الوسيط nslot هو قيمة من نوع u32 تُقرأ من منطقة تخزين تسميات DIMM. تقوم الدالة __nd_label_validate() بتقييد قيمتها مقابل حجم منطقة التكوين، لكن sizeof_namespace_label() تعيد قيمة غير موقعة (unsigned)، لذا يتم تقييم الناتج nslot * label_size بـ 32-bit ويتم الالتفاف modulo 2^32 قبل إجراء المقارنة. تمرر قيمة nslot مُصمَّمة بشكل خبيث اختبار الحدود وتُستخدم بعد ذلك كعدد تكرارات الحلقة في nd_label_data_init()، حيث تقوم دالة memset() بالكتابة خارج حدود buffer config_size: أي عملية كتابة خارج النطاق (out-of-bounds write).
هذا الحقل غير موثوق به -- فهو يأتي من الوسيط، أو من مساحة المستخدم عبر ND_CMD_SET_CONFIG_DATA. قم بتقييم الناتج بـ 64-bit بحيث يكون فحص الحدود دقيقاً؛ ولا تتأثر التسميات المطابقة للمواصفات.
كان الفحص آمناً عند إدخاله بواسطة commit 4a826c83db4e ("libnvdimm: namespace indices: read and validate"): حيث كان يضرب في sizeof(struct nd_namespace_label)، وهي من نوع size_t، لذا لم يكن الناتج ليتفوق على الحدود (wrap) في البناء لـ 64-bit. أدى commit 564e871aa66f ("libnvdimm, label: add v1.2 nvdimm label definitions") إلى تضييقه ليصبح بـ 32 bit عندما أصبح حجم التسمية قيمة زمنية القراءة تُقرأ عبر sizeof_namespace_label().
If you want to get best quality of vulnerability data, you may have to visit VulDB.