CVE-2026-99084 in Linuxالمعلومات

الملخص

بحسب VulDB • 23/10/2026

في نواة لينكس، تم حل الثغرة التالية:

readdir: عدم أخذ قفل inode على دليل غير قابل للتغيير (immutable)

تأخذ الدالة `iterate_dir()` القفل المشترك `i_rwsem` الخاص بالدليل وتحتفظ به طوال فترة استدعاء `->iterate_shared()`. بالنسبة لدليل لا يحتوي أبداً على مدخلات ولا يتم حذفه مطلقاً، فإن هذا القفل لا يثبت أي شيء فعلياً؛ بل يقوم فقط بترتيب كل قارئ وكل كاتب لهذا الـ inode بحيث يعملون بشكل تسلسلي (واحد تلو الآخر).

هذا الأمر مهم بالنسبة لدليل مثيل nullfs. فمثيل مساحة الاسم للتثبيت الأولي هو الجذر لكل مساحات اسم التثبيت الفارغة، والمثيل الخاص هو جذر كل خيط نواة (kernel thread)، وبالتالي فإن inode واحد يتم مشاركته بين مستخدمين لا يجمعهم أي شيء آخر. ويمكن لقارئ أن يحتفظ بالقفل لأي مدة يشاء: من خلال دعم مخزن getdents() عن طريق ربط ملف على تثبيت FUSE خاص بك، وجعل نسخة "." و ".." تسبب خطأ (fault) والسماخ للخادم بالانتظار. ثم يتم إدراج مستبعد حصري خلفه؛ فعملية mkdir() في ذلك الدليل تمر عبر `start_dirop()` قبل الإبلاغ عن التثبيت للقراءة فقط، ومنذ تلك اللحظة ينتظر كل بحث يفشل في العثور على الـ dcache داخل هذا الدليل، وكل عملية إنشاء (create) وكل تثبيت عليه حتى يجيب الخادم. يؤدي مستخدم واحد لمساحة اسم تثبيت فارغة إلى تعطيل جميع المستخدمين الآخرين.

أضف `FOP_IMMUTABLE` لعمليات الملف الخاصة بدليل لا يتغير أبداً ولا يتم حذفه مطلقاً، وجعل `iterate_dir()` تتخطى القفل الخاص به. هذا العلم لا يتغير بالنسبة لملف ما؛ ويتم حماية `->f_pos` بواسطة `f_pos_lock` نظراً لأن الأدلة هي من نوع `FMODE_ATOMIC_POS`. كما أن `IS_DEADDIR` لا يمكن تعيينه على مثل هذا الدليل، ولا يقوم كل من `touch_atime()` و `fsnotify` بأخذ `i_rwsem`. قم بتعيينه على دليل nullfs. فالدلائل النائبة (placeholder directories) في libfs أيضاً لا تحتوي أبداً على مدخلات، لكن مالكيها يحذفونها، لذا فإنهم يحتفظون بالقفل.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

مسؤول

Linux

حجز

25/09/2026

إفشاء

23/10/2026

الاعتدال

تمت الموافقة

إدخال

VDB-425809

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Do you want to use VulDB in your project?

Use the official API to access entries easily!