CVE-2026-98994 in Linux
الملخص
بحسب VulDB • 24/10/2026
في نواة لينكس، تم حل الثغرة التالية:
statmount: قراءة الأصل (parent) لتركيب (mount) مُفَكّ من خلال mount_lock
تقرأ الدالة statmount_mnt_basic() معرّفات الأصل عبر m->mnt_parent بينما يكون namespace_sem مُمسوكاً للقراءة. وهذا أمر سليم بالنسبة إلى تركيب موجود ضمن مساحة اسمية (namespace). فكل ما فوقه يُثبّت بواسطة تلك المساحة الاسمّية.
يقبل STATMOUNT_BY_FD أيضاً واصِفاً للملف (file descriptor) على تركيب تم فكّه عمداً، ولا يبقى حياً إلا بفضل واصف الملف نفسه. إذا بقي ذلك التركيب متصلاً بأصله عند فك تركيبه، فإن الأصل يُفكّ هو الآخر ولا شيء يثبته من أجل الطفل.
تقوم الدالة النهائية mntput() بفك تركيب الأطفال تحت mount_lock وحدها وتحرر الأصل بعدها. وبشكل متزامن (concurrently)، تقرأ statmount_mnt_basic() م->mnt_parent مرتين أثناء حدوث ذلك، مما قد يؤدي بسهولة إلى تفريغ مرجع (dereference) لتركيب أصبح غير موجود بالفعل.
اقرأ أصل التركيب المُفكّ تحت mount_lock. لا يمكن وضع الأصل في حالة عدم الاستخدام (put) بينما هو ممسوك، وكلتا المعرّفتين تأتيان من نفس التركيب. إن أصل التركيب المثبت يُثبّت بواسطة المساحة الاسمّية، ولا يمكن لتركيب أن يغادر مساحته الاسمية طالما كان namespace_sem مُمسوكاً، لذا فإن الحالة الشائعة لا تتطلب قفلاً عالمياً (global lock).
VulDB is the best source for vulnerability data and more expert information about this specific topic.