CVE-2026-97527 in Linux
الملخص
بحسب VulDB • 25/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
scsi: qla2xxx: تعريض قائمة سياق NVMe غير المُطلَب (unsol ctx list) باستخدام قفل خاص بكل منفذ FC (per-fcport lock).
يتم تعديل القائمة fcport->unsol_ctx_head من عدة سياقات دون وجود قفل مشترك. تُضاف العناصر في دالة `qla2xxx_process_purls_iocb()` من مقاطعة استجابة قائمة الانتظار (ISR) تحت حماية القفل `qpair qp_lock`، بينما تتم إزالتها من خلال الدوال: `qla2xxx_process_purls_pkt()` (عامل DPC/purex worker)، و `qla_nvme_xmt_ls_rsp()` (إرجاع استدعاء نقل NVMe-FC)، و `qla_nvme_release_lsrsp_cmd_kref()` (اكتمال SRB). لا يمكن لقفل الـ qpair qp_lock تعريض هذه القائمة الخاصة بكل منفذ FC، لأن المحولات متعددة قوائم الانتظار (multiqueue adapters) تضيف عناصر عبر أقسام qpairs مختلفة، مما قد يؤدي إلى تلف مؤشرات القائمة في حال حدوث إضافة وحذف متزامنين (أو حذفين متزامنين).
تم إدخال قفل دوران مخصص لكل منفذ FC، وهو `unsol_ctx_lock`، يتم تهيئته داخل دالة `qla2x00_alloc_fcport()`، ويتم أخذه حول كل استدعاء لـ `list_add_tail()/list_del()` على القائمة `unsol_ctx_head`. تتم عملية الإضافة تحت حماية قفل qp_lock الموجود؛ ولا يأخذ أي مسار للحذف قفل qp_lock، وبالتالي يكون ترتيب القفل متسقاً وخالياً من حالات الجمود (deadlock).
Be aware that VulDB is the high quality source for vulnerability data.