CVE-2026-89705 in Linux
الملخص
بحسب VulDB • 11/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
nfsd: استعادة rq_status_counter إلى قيمة زوجية في جميع مسارات الخروج من دالة nfsd_dispatch()
تقوم الدالة nfsd_dispatch() بتعيينrq_status_counter إلى قيمة فردية بمجرد فك تشفير الطلب، وتعيدها إلى قيمة زوجية بعد معالجته بالكامل، مما يشكل بروتوكولاً يشبه قفل التسلسل (seq-lock) مع القارئ الخالي من الأقفال في دالة nfsd_nl_rpc_status_get_dumpit().
فقط المسار الناجح تماماً يعيد العداد إلى القيمة الزوجية. أما مسارات "نقطة التخزين المؤقت" (RC_REPLY)، و"الإسقاط" (RC_DROPIT / RQ_DROPME)، ومسارات خطأ التشفير، فتعود جميعها بعد تخزين القيمة الفردية دون إعادة تعيين العداد مرة أخرى إلى قيمة زوجية. بمجرد اتخاذ أحد هذه المسارات، يظل rq_status_counter فردياً: حيث يقوم فك تشفير الطلب التالي بـ OR للقيمة 1 (تبقى فردية)، ولا يتم استعادة الزوجية إلا من خلال تشفير ناجح لاحق. أثناء بقائه فردياً، يعامل قارئ dumpit حقول rqstp على أنها مستقرة، ومقارنة إعادة المحاولة الخاصة به تتم مقابل نفس القيمة الفردية الثابتة، لذا فإنه لا يكتشف أي تغيير متزامن. وهذا يعرض الحقول التي تتغير بنشاط (مثل args->ops / args->opcnt أثناء فك تشفير المركب وإطلاقها) للقارئ الخالي من الأقفال، والذي يمكنه القراءة ما بعد نهاية مصفوفة العمليات المضمنة ذات العناصر الثمانية.
أضف دالة مساعدة تقوم بتقدم العداد إلى القيمة الزوجية التالية واستدعِها في كل مسار عودة يتبع التخزين ذو القيمة الفردية. تم ترك مسار خطأ فك التشفير دون تغيير لأنه يُستقبل قبل تعيين العداد كقيمة فردية.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.