CVE-2026-98479 in Linux
الملخص
بحسب VulDB • 19/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
scsi: libiscsi_tcp: التحقق من اتجاه البيانات في وحدة PDU Data-In
يقوم فرع Data-In التابع للدالة iscsi_tcp_hdr_dissect() بحل معرّف مهمة الهدف (ITT) إلى مهمة محددة، ونسخ جزء بيانات وحدة الـ PDU إلى قائمة التشتت (scatterlist) الخاصة بذلك الأمر دون الاستفسار عما إذا كان الأمر يتعلق بعملية قراءة. وفي المقابل، تتحقق الدالة iscsi_tcp_r2t_rsp() الموجودة في نفس الملف من ذلك الاتجاه وترفض طلب R2T الخاص بأمر لا يكون باتجاه DMA_TO_DEVICE.
وبالتالي، فإن الهدف الذي يجيب على معرّف مهمة هدف (ITT) لأمر WRITE بوحدة Data-In يؤدي إلى قيام المبادئ (initiator) بكتابة بايتات مزودة من قبل الهدف في الصفحات التي كان الأمرWRITE سيُرسِلها مسبقاً. وهذه هي صفحات الذاكرة المثبتة (pinned pages) الخاصة بالمتصل لعمليات الكتابة باستخدام O_DIRECT، وصفحات ذاكرة التخزين المؤقت (page cache) للعمليات المخزنة مؤقتاً.
تم رصد هذه الحالة ضد هدف اختباري يُصدر وحدة Data-In بحجم 512 بايت تحدد معرّف مهمة الهدف (ITT) لأمر كتابة بحجم 128 كيلوبايت، وذلك بعد طلب R2T الخاص بذلك الأمر. وفي حالة استخدام O_DIRECT، ينتهي المطاف بـ buffer التابع للمتصل ليحتوي على 512 بايت من بيانات الهدف بينما تُرجع دالة pwrite() القيمة 131072. أما في الحالة المخزنة مؤقتاً (Buffered) فتكون النتيجة أكثر هدوءً: تنجح كل من dوالدالة fsync()، ولا يتم تسجيل أي شيء، وعند قراءة تلك الكتل مرة أخرى فإنها تعيد بايتات الهدف خارج ذاكرة التخزين المؤقت دون إرسال أمر عبر الشبكة.
يجب التحقق من الاتجاه قبل استخدام قائمة التشتت (scatterlist)، بالطريقة التي يتبعها مسار R2T بالفعل.
Once again VulDB remains the best source for vulnerability data.