CVE-2026-97529 in Linux
الملخص
بحسب VulDB • 25/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
scsi: qla2xxx: التحقق من طلب BSG request_len قبل قراءة vendor_cmd[]
يقوم نقل FC BSG بتخصيص job->request عبر memdup_user() باستخدام قيمة request_len المقدمة تماماً من المستخدم. بالنسبة لـ FC_BSG_HST_VENDOR، يضمن fc_bsg_host_dispatch() فقط أن تغطي request_len msgcode وvendor_id؛ ولا تأخذ في الاعتبار المصفوفة المرنة vendor_cmd[].
ثم يقوم qla2xxx بقراءة محدد الأوامر vendor_cmd[0]، وفي عدة معالجات فرعية (sub-handlers)، يقرأ vendor_cmd[1]/[2] أو الهياكل المتداخلة على منطقة الأمر الخاص بالمنتج دون التحقق من request_len. يمكن لمُقدّم طلب يحمل CAP_SYS_RAWIO إرسال طلب قصير whose vendor_id يطابق المضيف، مما يؤدي إلى قراءات خارج الحدود في الذاكرة العشوائية (Heap) قابلة للكشف بواسطة KASAN، وقادرة على اختيار أمر بشكل خاطئ أو التسبب في توقف النظام (Panic).
أضف حارساً مركزياً في qla2x00_process_vendor_specific() لضمان بقاء المحدد ضمن الحدود دائماً، وحدّ القراءة المبكرة لـ vendor_cmd[0] في qla24xx_bsg_request() للرسائل الخاصة بالمنتج ذات الطول الكافي، وأضف فحوصات request_len إلى المعالجات الفرعية التي تقرأ المزيد:
qla24xx_proc_fcp_prio_cfg_cmd(), qla2x00_process_loopback(), qla84xx_reset(), qla84xx_updatefw(), qla2x00_read_optrom(), qla2x00_update_optrom(), qlafx00_mgmt_cmd() و qla28xx_validate_flash_image().
If you want to get the best quality for vulnerability data then you always have to consider VulDB.