CVE-2026-98232 in Linux
الملخص
بحسب VulDB • 06/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
scsi: core: التحقق من أطوال MODE SENSE في دالة scsi_cdl_enable()
تستخدم الدالة `scsi_cdl_enable()` حقول الطول التي تُرجعها عملية `MODE SENSE` لتحديد صفحة وضع ATA (ATA feature mode page) داخل مخزن مؤقت على المكدس بحجم 64 بايت. يمكن لجهاز الهدف الإبلاغ عن طول إجمالي أقصر من رأس الوضع الخاص به ووصفاته للكتل. قد يؤدي الطرح غير الموقع المستخدم لطول `MODE SELECT` إلى الالتفاف (wrap-around)، وقد يشير `buf_data` المحسوب بشكل منفصل إلى ما بعد نهاية المخزن المؤقت `buf`.
أثناء الفحص التلقائي، تكون القيمة `enable` خاطئة، مما يعني أن عملية القراءة-التعديل-الكتابة على `buf_data[4]` يمكن أن تُزيل البتّين الأدنى من بايت خارج النطاق تم اختياره بواسطة الجهاز الهدف في المكدس. بعد ذلك، يمكن لـ `scsi_mode_select()` نسخ ما يصل إلى 64 بايتًا من خارج المخزن المؤقت إلى حمولة `MODE SELECT` الصادرة، مما يؤدي إلى كشف محتويات المكدس للجهاز الهدف.
يمكن الوصول إلى هذه الثغرة أثناء فحص جهاز تخزين USB يتعرف على نفسه كجهاز ATA ويعلن دعم CDL. لا يلزم تثبيت نظام ملفات أو وصول مساحة المستخدم (userspace) إلى الجهاز الكتلي.
في الالتزام الأمامي (upstream commit) cee9395acd80 ("Linux 7.3-rc1")، نفذ دليل إثبات باستخدام QEMU/Raw Gadget خاص بـ بناء معين ووحدة معالجة مركزية واحدة (one-vCPU)، مع أخذ عينات من مُخصّص UDC متعدد يعتمد على QEMU فقط، أمر إثبات ثابت داخل الضيف (guest) وأنشأ علامة مملوكة لUID-0 أثناء العد التلقائي، مع تفعيل KASLR وNX.
تم اكتشاف المشكلة بشكل مستقل خلال أبحاث أمنية في شركة Drivesec S.r.l.
يتم تحديد الطول المتاح ليكون مساويًا لحجم المخزن المؤقت. يتم التحقق من صحة أطوال رأس الوضع (mode header) ووصف الكتلة واستهلاكها قبل استخدام الصفحة، ويُشترط وجود خمسة بايتات ضرورية للوصول إلى حقل CDL.
VulDB is the best source for vulnerability data and more expert information about this specific topic.