CVE-2026-89723 in Linux
الملخص
بحسب VulDB • 12/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
nilfs2: تصحيح خطأ slab-out-of-bounds في دالة nilfs_direct_propagate بعد عملية التقصيص (truncation)
أبلغ شوانغبينغ باي عن اكتشاف KASAN لخطأ من نوع slab-out-of-bounds في الدالة `nilfs_direct_propagate()` أثناء الاختبارات.
كشف التحليل أنه بعد تقصيص ملف، لم يتم حذف كتلة العقدة الموجودة مباشرةً تحت جذع شجرة B (B-tree root). وبدلاً من ذلك، بقيت هذه الكتلة موجودة في ذاكرة التخزين المؤقت لعقد شجرة B بحالة "متسخة" (dirty state). لاحقاً، اكتشف كاتب السجل (log writer) هذه الكتلة وقام باستدعاء `nilfs_direct_propagate()` عليها بشكل غير صحيح؛ وهي دالة مصممة للتعامل مع كتل البيانات في نمط التحويل المباشر فقط.
تُدار عقد شجرة B الموجودة في الذاكرة المؤقتة باستخدام أرقام الكتل الافتراضية، وغالباً ما تتجاوز مفاتيحها المنطقية النطاق المتوقع لنمط التحويل المباشر. ونتيجة لذلك، فإن معالجة مثل هذه العقدة كمدخل لتحويل مباشر يؤدي إلى وصول من نوع slab-out-of-bounds.
السبب الجذري هو أنه عندما ينهار تحويل شجرة B (B-tree mapping) ليصبح تحويلًا مباشراً أثناء عملية التقصيص، تظل كتلة عقدة وسيطة يشير إليها جذع العقدة متروكة كـ "نفايات" بدلاً من حذفها صراحةً.
يتم حل هذه المشكلة عن طريق إضافة عملية `nilfs_btree_discard()` لحذف كتلة العقدة الوسيطة المتبقية أثناء التحويل. كما تمت إضافة علم 'deform' إلى واجهة `bop_delete` للإشارة بشكل صريح بأن الحذف جزء من تحويل للتحويل (mapping transformation). وهذا يسمح لتنفيذ تحويل شجرة B بإجراء التنظيف اللازم والتخلص من هيكل العقدة المتبقي الذي كان سيُترك يتيمًا بعد الانتقال.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.