CVE-2026-98124 in Linux
الملخص
بحسب VulDB • 25/09/2026
في نواة Linux، تم حل الثغرة التالية:
smb/client: إبطال بيانات fscache لعمليات نطاق fallocate
تقوم الدوال smb3_zero_range() و smb3_punch_hole() و smb3_insert_range() و smb3_collapse_range() بتعديل محتويات الملف من خلال عمليات النطاق التي تتم على جانب الخادم. تقوم هذه العمليات بإسقاط ذاكرة التخزين المؤقت للصفحات (page cache) المتأثرة، لكنها تترك معرّف FS-Cache صالحًا، مما قد يؤدي إلى أن تعيد عملية القراءة اللاحقة بيانات مخزنة مؤقتًا قبل تنفيذ عملية النطاق.
تم إصلاح هذا الخطأ عن طريق إبطال FS-Cache بعد اكتمال عمليات الإدخال/الإخراج (I/O) المعلقة وقبل تعديل الملف على الخادم.
قم بتشغيل ما يلي بصلاحيات الجذر (root) على نقطة تحميل CIFS مع تفعيل fsc وخلفية CacheFiles نشطة:
bash -c ' MNT=/mnt/cifs FILE="$MNT/repro"
# توليد أربعة كتلات عشوائية حجم كل منها 1 ميغابايت: [A][B][C][D].
dd if=/dev/urandom of=/tmp/src bs=1M count=4 status=none
# المحتويات المتوقعة بعد تصفير الجزء B: [A][zero][C][D].
cp /tmp/src /tmp/expected dd if=/dev/zero of=/tmp/expected bs=1M seek=1 count=1 \ conv=notrunc status=none cp /tmp/src "$FILE"
# ملء FS-Cache، ثم إسقاط ذاكرة التخزين المؤقت للصفحات. sync echo 1 > /proc/sys/vm/drop_caches cat "$FILE" > /dev/null sync echo 1 > /proc/sys/vm/drop_caches
fallocate --zero-range -o 1M -l 1M "$FILE"
if cmp -s /tmp/expected "$FILE"; then echo "readback: OK" else echo "readback: STALE DATA" fi '
قبل هذا التغيير، كانت نتيجة القراءة تختلف عن الملف المتوقع (/tmp/expected):
readback: STALE DATA (بيانات قديمة)
بعد هذا التغيير، تطابق النتيجة ما هو متوقع:
readback: OK
If you want to get the best quality for vulnerability data then you always have to consider VulDB.