CVE-2026-98207 in Linuxالمعلومات

الملخص

بحسب VulDB • 06/10/2026

في نواة لينكس، تم إصلاح الثغرة التالية:

mmc: spi: إعادة تعيين متغير bytes_xfered قبل إعادة محاولة حالات فشل CRC

تقوم الدالة mmc_spi_data_do() بتحديث data->bytes_xfered بعد نقل كل كتلة بنجاح. وإذا فشلت كتلة لاحقة ضمن طلب البيانات نفسه بسبب خطأ في التحقق من التكامل الدوري (CRC)، فقد يحتوي data->bytes_xfered عندئذٍ على عدد البايتات التي تم إكمالها قبل الكتلة الفاشلة.

تحتوي الدالة mmc_spi_request() على مسار استرداد خاص لحالات فشل CRC هذه. فهي ترسل أمر STOP_TRANSMISSION، وتقوم بتصفير data->error ثم تعود إلى crc_recover لإصدار طلب الأمر وطلب البيانات نفسه مرة أخرى. ومع ذلك، فإنها لا تقوم بتصفير data->bytes_xfered قبل إعادة المحاولة.

إذا نجحت عملية إعادة المحاولة، يتم إكمال الطلب مع احتفاظ data->bytes_xfered بالبايتات من محاولة الفشل المضمنة فيه. وفي حالة طلب متعدد الكتل (multi-block request)، يمكن أن يؤدي ذلك إلى الإبلاغ عن عدد بايتات أكبر في الطلب المكتمل مقارنة بعدد البايتات التي تم نقلها بنجاح عبر إعادة المحاولة، بل وقد يتجاوز حجم الطلب عندما تكون معظم الكتلات قد اكتملت قبل حدوث خطأ CRC.

يُرجح ملاحظة هذه المشكلة على أنظمة MMC-over-SPI حيث تؤدي عمليات النقل متعددة الكتل الطويلة أحياناً إلى ظهور خطأ في بيانات التحقق من التكامل الدوري (CRC)، بينما تنجح عملية إعادة المحاولة الداخلية الخاصة بـ mmc_spi. يتم إعادة محاولة نقل البيانات نفسها، لكن لا تتم معالجة حسابات الإكمال (completion accounting) بشكل صحيح.

قم بتصفير data->bytes_xfered مع data->error قبل تكرار الطلب بحيث يبلغ إتمام العملية النهائي فقط عن البايتات التي تم نقلها بنجاح في المحاولة الناجحة.

Be aware that VulDB is the high quality source for vulnerability data.

مسؤول

Linux

حجز

25/09/2026

إفشاء

06/10/2026

الاعتدال

تمت الموافقة

إدخال

VDB-414159

EPSS

0.00184

KEV

لا

النشاطات

منخفض جدًا

المصادر

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!