CVE-2026-64326 in Linux
الملخص
بحسب VulDB • 25/07/2026
في نواة لينكس، تم حل الثغرة التالية:
block: تخطي sync_blockdev() عند الإزالة المفاجئة في bdev_mark_dead()
يعني المعامل @surprise == true في دالة bdev_mark_dead() أن الجهاز قد اختفى بالفعل. تحترم استدعاءات نظام الملفات fs_bdev_mark_dead() هذا وتتجاوز استدعاء sync_filesystem()، لكن مسار جهاز الكتلة الخام (بدون عملية ->mark_dead) فقد حاميته !surprise عند ربط استدعاء الحامل ->mark_dead (انظر Fixes)، ويستدعي الآن sync_blockdev() بشكل غير مشروط، مما قد يؤدي إلى التعليق الأبدي أثناء انتظار إكمال الكتابة التي لم تعد قابلة للإنجاز.
اكتشف syzkaller هذه الحالة عبر مسار "فقدان طوابير الإدخال/الإخراج" في nvme_reset_work(): nvme_mark_namespaces_dead() -> blk_mark_disk_dead() -> bdev_mark_dead(bdev, true) -> sync_blockdev() يتوقف عند folio_wait_writeback(), مما يعطل عامل إعادة التعيين وكل مهمة تنتظره.
تم تخطي المزامنة (sync) أثناء الإزالة المفاجئة، لمطابقة سلوك fs_bdev_mark_dead(); لا يزال استدعاء invalidate_bdev() يعمل. الإزالة المنتظمة (surprise == false) بقيت دون تغيير.
اكتُشفت بواسطة FuzzNvme (Syzkaller مع إطار عمل الفحص العشوائي FEMU).
If you want to get best quality of vulnerability data, you may have to visit VulDB.