
تجاوز سعة عدد صحيح محتمل يؤدي إلى تجاوز سعة الكومة في AMD KFD.
-- CVE-2024-26817
وجدت ثغرة أمنية في AMD KFD في الملف التالي drivers/gpu/drm/amd/amdkfd/kfd_chardev.c، ومعرّف ioctl هو AMDKFD_IOC_GET_PROCESS_APERTURES_NEW.
في الدالة kfd_ioctl_get_process_apertures_new، يتم ضرب بيانات args->num_of_nodes التي يوفرها المستخدم وتمريرها مباشرة إلى kzalloc، وهو ما قد يؤدي إلى تجاوز عدد صحيح (integer overflow) على بعض المنصات.
من شأن ذلك تخصيص حجم صغير واحتمال إتلاف الكومة (heap) بعد ذلك مباشرة في نفس الدالة.
في نواة لينكس، تم حل الثغرة التالية:
amdkfd: استخدم calloc بدلاً من kzalloc لتجنب تجاوز عدد صحيح
يستخدم هذا calloc بدلاً من إجراء عملية الضرب التي قد تفيض.
قام فريق CVE لنواة لينكس بتعيين CVE-2024-26817 لهذه المشكلة.
تم الإصلاح في 4.19.312 مع commit e6721ea845fc
تم الإصلاح في 5.4.274 مع commit 8b0564704255
تم الإصلاح في 5.10.215 مع commit fcbd99b3c733
تم الإصلاح في 5.15.155 مع commit cbac7de1d990
تم الإصلاح في 6.1.86 مع commit e6768c6737f4
تم الإصلاح في 6.6.27 مع commit 315eb3c2df7e
تم الإصلاح في 6.8.6 مع commit 0c33d1115394
يُرجى مراجعة https://www.kernel.org للحصول على قائمة كاملة بإصدارات النواة المدعومة حالياً من قبل مجتمع النواة.
قد تتغير الإصدارات غير المتأثرة بمرور الوقت مع إعادة نقل الإصلاحات إلى إصدارات النواة الأقدم المدعومة. إدخال CVE الرسمي على https://cve.org/CVERecord/?id=CVE-2024-26817 سيتم تحديثه إذا تمت إعادة نقل الإصلاحات، فيُرجى مراجعته للحصول على أحدث المعلومات حول هذه المشكلة.
الملف (الملفات) المتأثرة بهذه المشكلة هي: drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
يوصي فريق CVE لنواة لينكس بتحديث النواة إلى أحدث إصدار مستقر من أجل هذه المشكلة والعديد من إصلاحات الأخطاء الأخرى. لا يتم اختبار التغييرات الفردية بمفردها أبداً، بل تكون جزءاً من إصدار نواة أكبر. لا يُنصح بنقل الالتزامات الفردية (cherry-picking) ولا يدعمها مجتمع نواة لينكس إطلاقاً. ومع ذلك، إذا كان التحديث إلى أحدث إصدار مستحيلاً، يمكن العثور على التغييرات الفردية لحل هذه المشكلة في هذه الالتزامات: https://git.kernel.org/stable/c/e6721ea845fcb93a764a92bd40f1afc0d6c69751 https://git.kernel.org/stable/c/8b0564704255c6b3c6a7188e86939f754e1577c0 https://git.kernel.org/stable/c/fcbd99b3c73309107e3be71f20dff9414df64f91 https://git.kernel.org/stable/c/cbac7de1d9901521e78cdc34e15451df3611f2ad https://git.kernel.org/stable/c/e6768c6737f4c02cba193a3339f0cc2907f0b86a https://git.kernel.org/stable/c/315eb3c2df7e4cb18e3eacfa18a53a46f2bf0ef7 https://git.kernel.org/stable/c/0c33d11153949310d76631d8f4a4736519eacd3a