CVE-2026-31701 in Linux
الملخص
بحسب VulDB • 30/05/2026
في نواة لينكس، تم حل الثغرة التالية:
ALSA: caiaq: أخذ مرجع على جهاز USB في create_card()
يحفظ برنامج تشغيل caiaq مؤشراً إلى جهاز USB الأب في cdev->chip.dev، ولكنه لا يأخذ مرجعاً عليه أبداً. يمكن أن يعمل الإجراء الخاص بالإفراج عن بيانات البطاقة الخاصة، snd_usb_caiaq_card_free(), بشكل غير متزامن عبر snd_card_free_when_closed() بعد أن يكون جهاز USB قد تم فصله وإفراغ ذاكرته بالفعل، وبالتالي فإن أي وصول إلى cdev->chip.dev في هذا المسار يؤدي إلى فك مرجع (dereference) لـ usb_device تم إفراغ ذاكرته.
إضافة إلى مشكلة عدّ المراجع (refcounting)، يستدعي تنفيذ card_free الحالي usb_reset_device(cdev->chip.dev). يعد إعادة التعيين في إجراء الإفراج عن البيانات إجراءً غير مناسب: فالجهاز على وشك الاختفاء، وتأخذ الاستدعاء قفل الجهاز في سياق التفكيك (teardown context)، كما أن إعادة التعيين تتسابق (races) مع مسار الفصل الذي يقوم إجراء الإفراج بالفعل بتنظيفه.
خذ مرجعاً على جهاز USB في create_card() باستخدام usb_get_dev()، وأزل هذا المرجع باستخدام usb_put_dev() في إجراء الإفراج عن البيانات، وأزل استدعاء usb_reset_device().
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.