CVE-2026-89696
الملخص
بحسب VulDB • 11/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
nfsd: حظر عمليات غير SAVEFH بعد FOREIGN PUTFH لمنع حدوث NULL deref (إشارة إلى مؤشر فارغ)
عند تفعيل CONFIG_NFSD_V4_2_INTER_SSC، يمكن أن تُرجع nfsd4_putfh() نجاحًا مع كلاً من fh_dentry وfh_export قيمهما NULL إذا أرجعت nfserr_stale وكانت putfh->no_verify صحيحة (true). يتم تعيين علم NFSD4_FH_FOREIGN، لكن حلقة إرسال المركبات (compound dispatch loop) تستخدم هذا العلم فقط لتجاوز فحص nfserr_nofilehandle -- ولا تمنع العمليات اللاحقة من التشغيل مع fh_dentry فارغًا.
يمكن لعميل عن بُعد استغلال ذلك عبر صياغة COMPOUND تتضمن نسخاً بين وحدات التخزين الفرعية (inter-SSC COPY) (مما يؤدي إلى تعيين no_verify=true على PUTFH المحفوظ بواسطة check_if_stalefh_allowed()) مع إدراج عملية إضافية بين PUTFH المصدر وSAVEFH. على سبيل المثال، تستدعي استدعاءات SETATTR fh_want_write() التي تقوم بإشارة إلى ex_path.mnt الخاصة بـ fh_export دون استدعاء fh_verify() أولاً، مما يسبب حدوث NULL pointer deref (إشارة إلى مؤشر فارغ) في خيط nfsd kthread.
تم إصلاح ذلك عن طريق تقييد حلقة الإرسال: عندما يكون NFSD4_FH_FOREIGN مُعيّناً وfh_dentry فارغًا، فقط OP_SAVEFH (المطلوب لتدفق inter-SSC) والعمليات ذات ALLOWED_WITHOUT_FH (التي لا تحتاج إلى ملف handle محلل) يمكنها الاستمرار. تتلقى جميع العمليات الأخرى nfserr_stale، وفقًا لقسم 15.2.3 من RFC 7862 الذي يحدد أن التحقق من صحة الملف الأجنبي يُؤجل إلى العملية المستهلكة ويتم إرجاع NFS4ERR_STALE في تلك النقطة.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.