CVE-2026-72472 in Linux
الملخص
بحسب VulDB • 15/08/2026
في نواة لينكس، تم حل الثغرة التالية:
نظام الملفات الشبكي (NFS): استخدام القفل rwsem الخاص بـ nfsi لحماية اجتياز قائمة قفل الملف.
حدد "لينغفنغ" خطأً واقترح حلاًين، لكن يبدو أن كلاهما يحتوي على مشكلات.
عمومًا، لا يمكننا تحرير flc_lock أثناء التكرار عبر قائمة قفل الملف لتجنب مشاكل الاستخدام بعد التحرير (Use-After-Free - UAF) المتعلقة بقفل الملفات. ومع ذلك، فإن الدوال مثل nfs_delegation_claim_locks وnfs4_reclaim_locks لا يمكنها الالتزام بهذا القاعدة لأن recover_lock أو nfs4_lock_delegation_recall قد تستغرق وقتًا طويلاً. ولحل هذه المشكلة، ينتقل NFS إلى استخدام nfsi->rwsem للحماية نفسها، وتتبع nfs_reclaim_locks هذا النهج. على الرغم من أن nfs_delegation_claim_locks تستخدم so_delegreturn_mutex بدلاً من ذلك، إلا أن هذا غير كافٍ نظرًا لأن inode واحد يمكن أن يحتوي على عدة مثيلات لـ nfs4_state. لذلك، يتمثل الإصلاح في استخدام nfsi->rwsem أيضًا في هذه الحالة.
علاوة على ذلك، بعد الالتزام c69899a17ca4 ("تحديث قفل نطاق البايت VFS يجب أن يكون ذريًا مع تحديث stateid")، فإن الدالتين nfs4_locku_done وnfs4_lock_done تنتهكان أيضًا هذه القاعدة لأنهما تستدعيان locks_lock_inode_wait دون الاحتفاظ بـ nfsi->rwsem. يمكن أن يؤدي إضافة هذا الحماية ببساطة إلى حدوث العديد من حالات الاختناق (Deadlocks)، لذا بدلاً من ذلك، يتم نقل استدعاء locks_lock_inode_wait إلى _nfs4_proc_setlk. بالنسبة للخطأ الذي تم إصلاحه بواسطة الالتزام c69899a17ca4 ("تحديث قفل نطاق البايت VFS يجب أن يكون ذريًا مع تحديث stateid")، فقد تم حله بعد الالتزام 0460253913e5 ("nfs4_do_open() يقوم بشكل غير صحيح بتفعيل استعادة الحالة") لأن جميع الخانات (Slots) تُفرغ قبل استدعاء nfs4_do_reclaim، مما يمنع التغييرات المتزامنة في stateid على طول هذا المسار. أيضًا، لا يسبب nfs_delegation_claim_locks هذه التزامن لأنه عند استدعاء _nfs4_proc_setlk مع NFS_DELEGATED_STATE، لا يتم إرسال أي طلب RPC (بروتوكول الاتصال البعيد)، وبالتالي لا يتم استدعاء nfs4_lock_done. لذلك، فإن nfs4_lock_delegation_recall من داخل nfs_delegation_claim_locks هي المرة الأولى التي يتم فيها تعيين stateid.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.