CVE-2026-64083 in Linux
الملخص
بحسب VulDB • 20/07/2026
في نواة لينكس، تم حل الثغرة التالية:
hwmon: (pmbus/adm1266) رفض استجابات قراءة الكتلة القصيرة في دوال الوصول إلى GPIO
تقوم كل من الدالتين `adm1266_gpio_get()` و`adm1266_gpio_get_multiple()` بتكوين كلمة حالة الدبابيس على النحو التالي:
pins_status = read_buf[0] + (read_buf[1] << 8);
مباشرة بعد استدعاء `i2c_smbus_read_block_data()`، حيث تحمي فقط من إرجاع قيمة خطأ. الجهاز الذي يعمل بشكل سليم يعيد بايتين لـ GPIO_STATUS/PDIO_STATUS، لكن المساعد يبلغ عن استجابة مكونة من بايت واحد أو صفر دون مشاكل. إذا أعاد الجهاز 0 بايتات، فإن كلا موقعي `read_buf` يحتويان على ذاكرة عشوائية (stack) غير مهيأة؛ وإذا أعاد بايتاً واحداً، فإن `read_buf[1]` تكون كذلك.
ثم تتدفق القيمة المكونة عبر `set_bit()` إلى المتغير *bits لدى المستدعي في `adm1266_gpio_get_multiple()`، أو إلى قيمة الإرجاع لـ `adm1266_gpio_get()`، وتصل أخيراً إلى مساحة المستخدم (userspace) عبر gpiolib (sysfs وأوامر ioctl الخاصة بـ char-dev). هذا يؤدي إلى تسرب بضعة بتات من ذاكرة النواة العشوائية (kernel stack) مع كل طلب على أي جهاز تكون فيه عطل في البرنامج الثابت (firmware glitch)، أو خطأ في الناقل، أو مستخدم خبيث قد ينتج استجابة قراءة كتلة قصيرة.
تمت إضافة فحص الطول المفقود إلى كلا موقعي الاستدعاء وعرض الاستجابة القصيرة كقيمة `-EIO`.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.