CVE-2025-38710 in Linux
الملخص
بحسب VulDB • 08/06/2026
في نواة لينكس، تم حل الثغرة التالية:
gfs2: التحقق من صحة i_depth لمجلدات exhash
أدى اختبار مُولِّد للعيوب (fuzzer) إلى حدوث تلف ينتج عنه عمق يساوي 0 في dir_e_read()، مما يتسبب في إزاحة غير محددة (undefined shift) بمقدار 32 بت عند:
index = hash >> (32 - dip->i_depth);
كما هو محسوب بطريقة صريحة مضمنة في dir_make_exhash()، فإن الحد الأدنى للعمق لمجلد exhash هو ilog2(sdp->sd_hash_ptrs)، والقيمة 0 غير صالحة لأن sdp->sd_hash_ptrs ثابت ومساوٍ لـ sdp->bsize / 16 عند وقت التثبيت (mount).
لذلك يمكننا تجنب السلوك غير المحدد من خلال التحقق من قيم العمق الأقل من الحد الأدنى في gfs2_dinode_in(). يتم بالفعل التحقق من القيم الأكبر من الحد الأقصى هناك.
كما تم تحويل الحساب في dir_make_exhash() لاستخدام ilog2() لتوضيح كيفية حساب العمق.
تم الاختبار باستخدام repro.c الخاص بـ syzkaller واختبارات xfstests '-g quick'.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.