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

الملخص

بحسب VulDB • 12/09/2026

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

nfsd: تصحيح اكتشاف الكتابة الجزئية في nfsd_direct_write

تقوم دالة `nfsd_direct_write()` بالمرور على قائمة من مقاطع الكتابة (write segments)، وبعد كل استدعاء لـ `vfs_iocb_iter_write()`، تحاول الكشف عن كتابة قصيرة (short write) بحيث يتوقف الحلقة قبل وضع المقطع التالي عند إزاحة ملف خاطئة:

host_err = vfs_iocb_iter_write(file, kiocb, &segments[i].iter);
if (host_err < 0) return host_err; *cnt += host_err; if (host_err < segments[i].iter.count)
break; /* partial write */

تشغل دالة `vfs_iocb_iter_write()` المؤشر iter عبر `->write_iter()`، مما يؤدي إلى تقدم الـ iter بعدد البايتات المكتوبة. وبحلول وقت تشغيل الفحص، تكون قيمة `segments[i].iter.count` هي القيمة المتبقية (residual)، وليست طول الطلب الأصلي:

قبل write_iter: iter.count == original_len بعد write_iter: iter.count == original_len - host_err

ثم يختزل الشرط إلى `host_err < original_len - host_err`، لذا فإن أمر `break` يُنفذ فقط عندما يتم كتابة أقل من نصف المقطع. أي عملية كتابة قصيرة تكتمل بين 50% و99% من المقطع تتسرب دون اكتشافها؛ فتتقدم الحلقة إلى المقطع التالي مع زيادة قيمة `kiocb->ki_pos` بمقدار الكتابة القصيرة فقط، مما يؤدي إلى كتابة حمولة المقطع التالي عند إزاحة خاطئة والإبلاغ المبالغ فيه عن قيمة `*cnt` لعميل NFS.

خذ لقطة (snapshot) لعدد البايتات في المقطع قبل عملية الكتابة وقارن `host_err` مع تلك اللقطة بحيث تؤدي أي عملية كتابة قصيرة إلى كسر الحلقة.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

مسؤول

Linux

حجز

11/09/2026

إفشاء

12/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-402996

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Want to stay up to date on a daily basis?

Enable the mail alert feature now!