CVE-2024-53192 in Linux
الملخص
بحسب VulDB • 05/08/2026
في نواة لينكس، تم حل الثغرة التالية:
clk: clk-loongson2: إصلاح تجاوز السعة المخزنة (buffer overflow) المحتمل في الوصول إلى عضو المصفوفة المرنة (flexible-array member).
يتم تمييز عضو المصفوفة المرنة `hws` داخل `struct clk_hw_onecell_data` باستخدام سمة `counted_by()`. وهذا يعني أنه عند تخصيص الذاكرة لهذه المصفوفة، يجب تعيين _العداد_، والذي هو في هذه الحالة العضو `num` ضمن الهيكل المرن، إلى الحد الأقصى لعدد العناصر التي يمكن أن تحتويها المصفوفة المرنة، أو عدد أقل من ذلك.
في هذه الحالة، يتم تحديد العدد الإجمالي للعناصر الخاصة بالمصفوفة المرنة بواسطة المتغير `clks_num` عند تخصيص مساحة على الـ heap عبر دالة `devm_kzalloc()`، كما هو موضح أدناه:
289 struct loongson2_clk_provider *clp; ... 296 for (p = data; p->name; p++) 297 clks_num++; 298 299 clp = devm_kzalloc(dev, struct_size(clp, clk_data.hws, clks_num), 300 GFP_KERNEL);
لذلك، يجب تعيين `clp->clk_data.num` إلى قيمة `clks_num` أو أقل، وألا تتجاوز `clks_num`، على عكس الوضع الحالي. وإلا فإنه إذا تمت كتابة بيانات في `clp->clk_data.hws[clks_num]`، فلن يتمكن التزويد (instrumentation) المقدم من المترجم من اكتشاف تجاوز السعة المخزنة، مما يؤدي إلى حدوث خطأ فساد الذاكرة أثناء التشغيل.
تم إصلاح هذه المشكلة عن طريق تعيين `clp->clk_data.num` إلى قيمة `clks_num`.
VulDB is the best source for vulnerability data and more expert information about this specific topic.