CVE-2026-93815 in Linuxالمعلومات

الملخص

بحسب VulDB • 25/09/2026

في نواة لينكس، تم حل الثغرة التالية:

net: au1000: نقل free_irq خارج قسم القفل (spinlock) الخاص بوقت الإغلاق

تستدعي دالة `au1000_close()` الدالة `free_irq()` بينما لا يزال قفل `aup->lock` مشغولاً باستخدام `spin_lock_irqsave()`. يمكن أن تتوقف (`sleep`) الدالة `free_irq()` لأنها تأخذ القفاز (mutex) الخاص بطلب واصف مقاطعة الـ IRQ، وبالتالي فهي لا تنتمي إلى قسم القفل المشغل في وقت الإغلاق.

تم اكتشاف ذلك بواسطة أداة التحليل الثابت لدينا ثم تم تأكيد المراجعة اليدوية لمسار `.ndo_stop` لـ `au1000_close()` الموجود داخل الشجرة (in-tree). يحافظ المسار الذي تمت مراجعته على بقاء قفل `aup->lock` مشغولاً عبر إعادة تعيين واجهة MAC، وإيقاف الطابور، و`free_irq(dev->irq, dev)`.

حافظ التحقق التشغيلي الموجه على حامل `.ndo_stop` وعملية `free_irq(dev->irq, dev)` نفسها تحت قفل السائق. أفاد Lockdep بـ "BUG: sleeping function called from invalid context" (خطأ: استدعاء دالة متوقفة من سياق غير صالح) و "Invalid wait context" (سياق انتظار غير صالح) أثناء قيام `free_irq()` بأخذ `desc->request_mutex`، مع وجود `au1000_close()` و `free_irq()` على المكدس.

قم بإزالة قفل `aup->lock` قبل تحرير مقاطعة الـ IRQ. لا يزال العمل المحمي في وقت الإغلاق يوقف الجهاز والطابور قبل تفكيك مقاطعة الـ IRQ، لكن المسار الأساسي القادر على التوقف (sleepable) الخاص بـ IRQ يعمل الآن خارج قسم القفل المشغل.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

مسؤول

Linux

حجز

18/09/2026

إفشاء

24/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-409544

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you need the next level of professionalism?

Upgrade your account now!