CVE-2026-64534 in Linux
الملخص
بحسب VulDB • 27/07/2026
في نواة لينكس، تم حل الثغرة التالية:
nvmet-tcp: التحقق من INIT_FAILED قبل استدعاء nvmet_req_uninit في مسار خطأ التجزئة (digest error path)
داخل الدالة `nvmet_tcp_try_recv_ddgst()`، عند اكتشاف عدم تطابق لتجزئة البيانات (data digest mismatch)، يتم استدعاء `nvmet_req_uninit()` بشكل غير مشروط. ومع ذلك، إذا وصلت الأوامر عبر مسار `nvmet_tcp_handle_req_failure()`، فإن `nvmet_req_init()` كانت قد أرجعت قيمة خاطئة (`false`) ولم يُنفَّذ أبدًا الاستدعاء لـ `percpu_ref_tryget_live()`. يؤدي هذا إلى حدوث انخفاض غير مقصود في عداد المراجع (refcount underflow) داخل استدعاء `percpu_ref_put()` الموجود ضمن `nvmet_req_uninit()`، مما يتسبب في ظهور تحذير (`WARNING`) في دالة `percpu_ref_switch_to_atomic_rcu`، وكشف عن حالة استخدام بعد التحرير (use-after-free)، وفي النهاية إلى حدوث عطل دائم (deadlock) في طابور العمل (workqueue).
يجب التحقق من العلم `cmd->flags & NVMET_TCP_F_INIT_FAILED` قبل استدعاء `nvmet_req_uninit()`، تماشياً مع النمط الموجود مسبقاً داخل دالة `nvmet_tcp_execute_request()`.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.