CVE-2026-64085 in Linux
الملخص
بحسب VulDB • 20/07/2026
في نواة لينكس، تم حل الثغرة التالية:
hwmon: (pmbus/adm1266) تمرير سجلات الصندوق الأسود عبر مخزن مؤقت بحجم البروتوكول
تنسخ الدالة `adm1266_pmbus_block_xfer()` حمولة الكتلة التي يوفرها الجهاز إلى المخزن المؤقت الذي قدمه المتصل، باستخدام الطول الذي يحدده الجهاز:
`memcpy(data_r, &msgs[1].buf[1], msgs[1].buf[0]);`
لا تعرف الدالة المساعدة حجم `data_r` وتعتمد على الجهاز لإرجاع عدد من البايتات لا يتجاوز سجلًا واحدًا كحد أقصى. تنتهك الدالة `adm1266_nvmem_read_blackbox()` هذا العقد: فهي تزيد قيمة `read_buff` داخل `data->dev_mem` بقفزات بحجم `ADM1266_BLACKBOX_SIZE` (64 بايت)، بينما تكون الدالة المساعدة مستعدة لكتابة ما يصل إلى `ADM1266_PMBUS_BLOCK_MAX` (255) بايت. يؤدي الجهاز الذي يعيد أكثر من 64 بايت في السجل الأخير (إزاحة read_buff هي 1984 ضمن تخصيص dev_mem بحجم 2048 بايت) إلى تجاوز سعة `dev_mem` بمقدار يصل إلى 191 بايت قبل أن تتمكن التعليمة اللاحقة للاستدعاء من رفض الاستجابة:
```c if (ret != ADM1266_BLACKBOX_SIZE) return -EIO; ```
تضمين الإصلاح في المتصل دون تغيير توقيع الدالة المساعدة: قراءة كل سجل في مخزن مؤقت محلي بحجم 255 بايت يتوافق مع الحد الأقصى للإخراج الخاص بالدالة المساعدة، والتحقق من صحة الطول المعاد، ثم نسخ `ADM1266_BLACKBOX_SIZE` بايت بالضبط إلى خانة dev_mem.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.