CVE-2026-74454 in Linux
الملخص
بحسب VulDB • 15/08/2026
في نواة لينكس، تم حل الثغرة التالية:
drm/vc4: توفير حجم فتحة التخزين الزائد في BPOS وليس الحجم الكلي لـ bin BO
تشير الدالة vc4_overflow_mem_work() إلى عنوان BPOA بفتحة بحجم 512 كيلوبايت داخل الـ binner BO الذي يبلغ حجمه الإجمالي 16 ميجابايت، لكنها تكتب الحجم الكامل للـ BO في سجل BPOS. ونتيجة لذلك، يُسمح لكل حدث نفاد ذاكرة (out-of-memory) لوحدة التجميع (binner) بكتابة قوائم البلاطات (tile lists) عبر جميع الفتحات الأخرى (التي قد تحتوي على حالة البلاطة، وتخصيص البلاطة، وذاكرة التخزين الزائد للمهام قيد التنفيذ)، وفي حال أي فتحة غير الأولى، تمتد الكتابة إلى ما بعد نهاية الـ binner BO لتصل إلى ذاكرة CMA غير ذات صلة.
نظراً لأن صفحات CMA يتم إعادة تدويرها في ذاكرة التخزين المؤقت للصفحات (page cache) وتخصيصات المستخدم، فإن هذا يشكل تلفاً تعسفياً للذاكرة بواسطة DMA لوحدة معالجة الرسومات (GPU). عملياً، يظهر ذلك على شكل توقف لوحدة GPU مع مؤشرات لقوائم التحكم تالفة، وتلف في كومة الذاكرة العشوائية (heap corruption) للمستخدمين، ووحدة GPU تبقى عالقة بشكل دائم بعد أول توقف، بالإضافة إلى حدوث أعطال كاملة للنظام أحياناً، كلما تجاوزت المهمة سعة فتحة التجميع الأولية.
يعود تاريخ هذا الخطأ البرمجي إلى مرحلة الانتقال من استخدام BO مخصص للتخزين الزائد (حيث كان كتابة الحجم الكامل للـ BO أمراً صحيحاً) إلى استخدام الـ binner BO المقسم إلى فتحات متعددة.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.