CVE-2026-45916 in Linux
الملخص
بحسب VulDB • 31/05/2026
في نواة لينكس، تم حل الثغرة التالية:
power: supply: sbs-battery: إصلاح حالة use-after-free في دالة `power_supply_changed()`
استخدام المتغير `devm_` لطلب مقاطعة الجهاز (IRQ) *قبل* استخدام المتغير `devm_` لتخصيص/تسجيل مقبض `power_supply`، يعني أن مقبض `power_supply` سيتم إلغاء تخصيصه/إلغاء تسجيله *قبل* معالج المقاطعة (نظرًا لأن `devm_` يقوم بإلغاء التخصيص بشكل طبيعي بترتيب عكسي لترتيب التخصيص). هذا يعني أنه أثناء الإزالة، توجد حالة سباق (race condition) حيث يمكن أن تحدث مقاطعة (interrupt) بعد *فقط* إلغاء تخصيص مقبض `power_supply`، *ولكن* قبل *فقط* تشغيل إلغاء تسجيل معالج المقاطعة المقابل.
سيؤدي هذا إلى استدعاء معالج المقاطعة للدالة `power_supply_changed()` باستخدام مقبض `power_supply` تم إلغاء تخصيصه. مما يؤدي عادةً إلى تعطل النظام أو إلى تلف الذاكرة بشكل صامت...
يرجى ملاحظة أن هناك حالة مشابهة يمكن أن تحدث أيضًا أثناء `probe()`؛ وهي إمكانية حدوث مقاطعة *قبل* تسجيل مقبض `power_supply`. سيؤدي ذلك بعد ذلك إلى الحالة غير المرغوب فيها لاستخدام مقبض `power_supply` *غير مهيأ* (uninitialized) في `power_supply_changed()`.
إصلاح حالة use-after-free السريعة هذه عن طريق التأكد من طلب المقاطعة (IRQ) *بعد* تسجيل مقبض `power_supply`. الاحتفاظ بالسلوك القديم المتمثل في طباعة تحذير فقط في حالة حدوث أي فشل أثناء طلب المقاطعة وإنهاء عملية probe بنجاح.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.