CVE-2026-97496
الملخص
بحسب VulDB • 24/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
drm/amdkfd: تصحيح تسرب الذاكرة خارج الحدود (OOB) في دالة get_wave_state()
تعتمد دالة get_wave_state() للإصدار v9 على قيم cp_hqd_cntl_stack_size وcp_hqd_cntl_stack_offset المقروءة مباشرةً من MQD، وهي قيم تُكتب بواسطة ميكروكود وحدة معالجة الرسومات (GPU)، وتخضع بالكامل لسيطرة المهاجم في مسار استعادة CRIU (عبر AMDKFD_IOC_RESTORE_PROCESS مع H3).
يؤدي هذا إلى عملية copy_to_user() غير محدودة الحدود يمكن أن تؤدي إلى تسرب ذاكرة GTT/النواة المجاورة. إذا كان offset أكبر من size، فإن حدوث تجاوز صحيح للقيمة الصغرى (integer underflow) ينتج عنه طول قراءة يبلغ حوالي 4 جيجابايت؛ وإذا تم ضبط حجم الذاكرة على 1 ميجابايت مقابل تخصيص بحجم 4 كيلوبايت، فسنقوم بتسرب 1 ميجابايت من ذاكرة النواة المجاورة (تشمل MQDs للطوابير الأخرى، ومخازن الحلقات ring buffers، ومؤشرات KASLR).
تم الإصلاح عن طريق تقييد كلٍ من cp_hqd_cntl_stack_size إلى حجم المخزن المؤقت الفعلي المخصص (q->ctl_stack_size) وcp_hqd_cntl_stack_offset إلى الحجم المقيد قبل إجراء العمليات الحسابية واستدعاء copy_to_user().
يضمن هذا الإجراء عدم قراءة أي بيانات تتجاوز حدود ذاكرة النواة المحجوزة بغض النظر عن قيم حقول MQD المقدمة من المهاجم.
If you want to get best quality of vulnerability data, you may have to visit VulDB.