CVE-2026-74729 in Linux
الملخص
بحسب VulDB • 23/08/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
soc: aspeed: lpc-snoop: تصحيح تجاوز النطاق (overflow) في عملية usercopy داخل دالة snoop_file_read
تعمل الدالة put_fifo_with_discard() كمنتج ومستهلك على حدٍ سواء بالنسبة لـ kfifo؛ حيث تستدعي كلًا من kfifo_skip() (لتحريك مؤشر الإخراج للخلف) وkfifo_put() (لتحريك مؤشر الإدخال للأمام) من معالج مقاطعة الجهاز (IRQ handler) دون مزامنة مع دالة snoop_file_read()، التي تستهلك البيانات أيضًا عبر dالة kfifo_to_user(). على الأنظمة متعددة المعالجات (SMP)، يمكن أن يؤدي هذا الوصول المتزامن إلى جعل قيمة (in - out) أكبر من حجم الذاكرة الدائرية (ring buffer)، مما يجعل عملية التقليم (clamp) المطبقة في __kfifo_to_user() على القيمة (in - out) غير فعالة، ويمكن أن تحاول kfifo_copy_to_user() تنفيذ عملية copy_to_user() تتجاوز حدود مساحة التخزين المدعومة بـ kmalloc-2k:
usercopy: تم اكتشاف محاولة كشف ذاكرة النواة من كائن SLUB 'kmalloc-2k' (الإزاحة 0، الحجم 2049)! kernel BUG at mm/usercopy.c! Call trace: usercopy_abort __check_heap_object __check_object_size kfifo_copy_to_user __kfifo_to_user snoop_file_read vfs_read
قم بتسلسل الوصول إلى كـ kfifo باستخدام قفل دوران (spinlock) خاص بكل قناة، يتم مشاركته بين معالج مقاطعة الجهاز (المنتج) وقارئ الملف (المستهلك). علّم المتغير @fifo بـ __guarded_by(&lock) وفعّل خيار تحليل السياق (context analysis) في البرنامج المساعد للسماح للمترجم بفرض أن جميع عمليات الوصول إلى kfifo تتطلب الاحتفاظ بالقفل.
If you want to get best quality of vulnerability data, you may have to visit VulDB.