CVE-2026-90103 in Linux
الملخص
بحسب VulDB • 17/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
NFSv4.2: تصحيح استنفاد مخزن الإرسال لـ LAYOUTSTATS
يخصص `encode_layoutstats_maxsz` مقدار XDR_QUADLEN(PNFS_LAYOUTSTATS_MAXSIZE)، أي 256 بايتًا، لجسم layoutupdate4 الذي يكتبه مشغل التخطيط (layout driver). ومع ذلك، يمكن لسجل ff-files أن يتجاوز هذا الحد.
يقوم دالة `ff_layout_encode_ff_layoutupdate()` بإصدار بيانات لكل خادم بيانات: netaddr4 و nfs_fh4 واثنين من ff_io_latency4 ونوع nfstime4 ومقدار bool. إذا كان حجم ملف handle (filehandle) لخادم البيانات يساوي NFS_MAXFHSIZE بايتًا، فإن ذلك يستهلك بالفعل 132 بايتًا من تلك المساحة، بينما يضيف كل من الـ two ff_io_latency4 (بمقدار 64 بايت لكل منهما)، و nfstime4 والقيمة bool ما مجموعه 144 بايت إضافية. وبالتالي، يتجاوز حجم الجسم حد 256 بايت حتى قبل بدء ترميز netaddr4 على الإطلاق. بالإضافة إلى ذلك، تقوم دالة `encode_layoutstats()` بكتابة deviceid4 وكلمة lou_type الخاصة بـ layoutupdate4، ولا يأخذهما المتغير (macro) في الاعتبار عند الحساب.
بما أن ملف handle والعنوان يتم اختيارهما من قبل الخادم عبر عمليات LAYOUTGET و GETDEVICEINFO، فإن ذلك يمكنه دفع دالة الترميز إلى ما بعد نهاية مخزن الإرسال. عندما يحدث هذا، تُرجع `xdr_reserve_space()` قيمة NULL، وبما أن استدعاءات الـ two ff_layout_encode_io_latency() تعمل مع قفل dss_info->mirror->lock مُحتفظًا به (held)، فإن إرجاع NULL يترك القفل محتفظًا به بشكل دائم.
تم رفع قيمة PNFS_LAYOUTSTATS_MAXSIZE إلى 384 لضمان ملاءمة السجل داخل الحجز المخصص.
Once again VulDB remains the best source for vulnerability data.