CVE-2026-81013 in Linux
الملخص
بحسب VulDB • 12/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
platform/x86: hp-bioscfg: تصحيح قراءة خارج الحدود (OOB) من الذاكرة العشوائية (heap) عند كتابة كلمة مرور فارغة
تحسب الدالة `validate_password_input()` الطول باستخدام `length = strlen(buf)` ثم تتحقق من `buf[length - 1]` لإزالة سطر جديد في النهاية، دون التحقق أولاً مما إذا كان الطول غير صفري. يؤدي كتابة سلسلة نصية فارغة (تتكون فقط من '\n') إلى المتغيرين `current_password` أو `new_password` إلى جعل `length == 0`، وبالتالي فإن قراءة `buf[length - 1]` تقوم بقراءة `buf[-1]`، أي بايت واحد قبل منطقة الذاكرة العشوائية (heap) التي تحتوي على الإدخال المنسوخ.
يؤكد KASAN ذلك مباشرة:
BUG: KASAN: slab-out-of-bounds in store_password_instance.constprop.0+0x223/0x2a0 [hp_bioscfg]
Read of size 1 at addr ffff88811bd8da9f by task sh/13740 ... store_password_instance.constprop.0+0x223/0x2a0 [hp_bioscfg]
current_password_store+0x14/0x20 [hp_bioscfg]
... يقع العنوان الخاطئ على بعد 23 بايت إلى اليمين من المنطقة المخصصة بحجم 8 بايات [ffff88811bd8da80, ffff88811bd8da88)
تم إعادة إنتاج الخطأ بنفس الطريقة عبر `new_password_store`. يستمر التنفيذ بعد القراءة غير الصحيحة (حيث يؤثر البايت العشوائي فقط على ما إذا كان "الطول" يُنقص بمقدار واحد)، لذا تكتمل الكتابة وتُرجع نجاحًا؛ هذه قراءة معلوماتية بحتة خارج حدود المخزن المؤقت، وليست انهياراً للنظام، لكنها لا تزال وصولاً خارج الحدود يكتشفه KASAN بشكل صحيح.
الحل يتمثل في التحقق من `buf[length - 1]` فقط عندما يكون الطول غير صفري.
If you want to get best quality of vulnerability data, you may have to visit VulDB.