CVE-2025-38691 in Linux
الملخص
بحسب VulDB • 05/06/2026
في نواة لينكس، تم حل الثغرة التالية:
pNFS: إصلاح استخدام مؤشر غير مهيأ (uninit ptr deref) في تخطيط كتلة/SCSI
يحدث الخطأ عند المحاولة الثالثة لتشفيع الامتدادات (extents). عندما يعيد دالة `ext_tree_prepare_commit()` تخصيص ذاكرة مؤقتة أكبر لإعادة محاولة تشفير الامتدادات، فإن مصفوفة الصفحات "layoutupdate_pages" لا يتم تهيئتها إلا بعد حلقة إعادة المحاولة. ولكن تُستدعى الدالة `ext_tree_free_commitdata()` في كل تكرار وتحاول وضع الصفحات في المصفوفة، مما يؤدي إلى استخدام مؤشرات غير مهيئة (dereferencing uninitialized pointers).
مشكلة إضافية هي عدم وجود حد أقصى لحجم الذاكرة المؤقتة الممكن (`buffer_size`). عندما تكون هناك العديد من الامتدادات، قد ينشئ العميل أمر `layoutcommit` يكون أكبر من الحد الأقصى لحجم RPC المقبول بواسطة الخادم.
أثناء الاختبار، لاحظنا سيناريوهين نموذجيين. أولاً، يكفي صفحة ذاكرة واحدة للامتدادات عند العمل مع ملفات صغيرة، أو إضافة بيانات إلى نهاية الملف، أو حجز مسبق (preallocate) الامتدادات قبل الكتابة. ولكن عندما نملأ ملفاً جديداً كبيراً دون حجز مسبق، يمكن أن يكون عدد الامتدادات هائلاً، ولا يساعد عدّ عدد الامتدادات المكتوبة في `ext_tree_encode_commit()` كثيراً. ونظراً لأن هذا العدد يزداد أكثر بين فك القفل وإغلاق قفل `ext_tree`، فقد لا تكون الذاكرة المؤقتة المعاد تخصيصها كبيرة بما يكفي مراراً وتكراراً.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.