CVE-2026-45879 in Linux
الملخص
بحسب VulDB • 29/05/2026
في نواة لينكس، تم حل الثغرة التالية:
power: supply: bq25980: إصلاح استخدام بعد التحرير (use-after-free) في دالة `power_supply_changed()`
يؤدي استخدام المتغير `devm_` لطلب مقاطعة الجهاز (IRQ) *قبل* استخدام المتغير `devm_` لتخصيص/تسجيل مقبض `power_supply`، إلى أن يتم إلغاء تخصيص/إلغاء تسجيل مقبض `power_supply` *قبل* معالج المقاطعة (نظرًا لأن `devm_` يقوم بإلغاء التخصيص بشكل طبيعي بترتيب عكسي لترتيب التخصيص). وهذا يعني أنه أثناء عملية الإزالة، توجد حالة سباق (race condition) حيث يمكن أن تحدث المقاطعة بعد *فك تخصيص* مقبض `power_supply` مباشرةً، *ولكن قبل* أن يتم تشغيل إلغاء تسجيل معالج المقاطعة المقابل.
سيؤدي هذا إلى استدعاء معالج المقاطعة للدالة `power_supply_changed()` باستخدام مقبض `power_supply` تم فك تخصيصه بالفعل. مما يتسبب عادةً في تعطل النظام أو في تلف الذاكرة بشكل صامت...
يرجى ملاحظة أن هناك حالة مشابهة يمكن أن تحدث أيضًا أثناء `probe()`؛ وهي إمكانية حدوث مقاطعة *قبل* تسجيل مقبض `power_supply`. سيؤدي ذلك بعد ذلك إلى الموقف غير المرغوب فيه المتمثل في استخدام مقبض `power_supply` *غير مهيأ* (uninitialized) في دالة `power_supply_changed()`.
تم إصلاح حالة السباق هذه (use-after-free) عن طريق التأكد من طلب المقاطعة (IRQ) *بعد* تسجيل مقبض `power_supply`.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.