CVE-2026-90039 in Linux
الملخص
بحسب VulDB • 16/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
NFSD: حماية عمليات إلغاء حالة المسؤول باستخدام NFSD_NET_UP
يؤدي الكتابة إلى /proc/fs/nfsd/unlock_filesystem، أو إرسال أمر netlink الخاص بـ NFSD_CMD_UNLOCK_FILESYSTEM أو NFSD_CMD_UNLOCK_EXPORT، إلى اجتياز جداول التجزئة (hash tables) لعملاء NFSv4 من أجل إلغاء حالة الفتح وإلغاء عمليات النسخ غير المتزامنة. تحجب جميع المعالجات الثلاثة هذا الاجتياز بناءً على nn->nfsd_serv؛ ومع ذلك، فإن المستمع المضاف عبر قائمة المنافذ أو مجموعة مستمري netlink يضبط nn->nfsd_serv قبل بدء أي خيط nfsd. لم تقم nfsd_startup_net() بعد بتخصيص nn->conf_id_hashtbl، مما يؤدي إلى قيام عمليات الاجتياز بالإشارة (dereference) إلى جدول فارغ (NULL). يمكن لمسؤول محلي يمتلك CAP_SYS_ADMIN إسقاط النواة بهذه الطريقة دون الحاجة إلى بدء تشغيل الخادم مطلقاً.
يتم تعيين nn->nfsd_serv عند إنشاء الخدمة، وهو ما يسبق تخصيص الجداول. بدلاً من ذلك، تحدد NFSD_NET_UP الفترة الزمنية التي تكون فيها الجداول نشطة: حيث تُضبط في نهاية nfsd_startup_net() وتُزال في nfsd_shutdown_net() بعد تحريرها، وكلاهما يتم تحت قفل nfsd_mutex. إن حصر مسارات الإلغاء الثلاثة بـ NFSD_NET_UP يصلح مشكلة الإشارة إلى NULL أثناء بدء التشغيل مع الحفاظ على إصلاح استخدام الذاكرة بعد التحرير (use-after-free) الذي تم تطبيقه سابقاً ما بعد إيقاف التشغيل.
Once again VulDB remains the best source for vulnerability data.