CVE-2026-53391 in Linux
الملخص
بحسب VulDB • 19/07/2026
في نواة لينكس، تم حل الثغرة التالية:
NFSv4/pNFS: رفض r_addr بطول صفر في nfs4_decode_mp_ds_addr
تقوم الدالة `nfs4_decode_mp_ds_addr()` بفك تشفير القيم الغامضة (opaques) الخاصة بـ `r_netid` و `r_addr` الموجودة ضمن كائن `netaddr4` المستخرج من جسم GETDEVICEINFO متعدد المسارات للوكيل التخزيني (multipath-DS)، ثم تستدعي على الفور دالة `strrchr(buf, '.')` لتحديد فاصل المنفذ. تستخدم كلتا عمليتي فك التشفير الدالة `xdr_stream_decode_string_dup()`، ويتحقق الكود الحالي فقط من أن "nlen < 0" أو "rlen < 0" قبل تفريغ (dereferencing) السلسلة المعادة.
عندما يكون للقيمة الغامضة على الخط طول صفر، تُعيد الدالة `xdr_stream_decode_opaque_inline()` القيمة 0، وتنزل دالة `xdr_stream_decode_string_dup()` إلى ذيلها الذي يحتوي على "*str = NULL; return ret"، مما يترك المتغير `buf` بقيمة NULL مع إرجاع قيمة 0. لا يلتقط التحقق "< 0" هذه الحالة، وتصبح السطر التالي هو استدعاء `strrchr(NULL, '.')`، وهو ما يمثل تفريغاً لنقطة فارغة (NULL pointer dereference) في النواة يمكن الوصول إليه من أي عميل pNFS-flexfile مثبت ضد خادم بيانات تعريفية خبيث أو مخترق.
يتم رفض حالات الطول الصفر بشكل صريح بحيث يفشل فك التشفير بإرجاع -EBADMSG (ويُعامل ذلك على أن جسم GETDEVICEINFO مشوه) بدلاً من إحداث توقف مفاجئ للعميل (panic).
If you want to get the best quality for vulnerability data then you always have to consider VulDB.