CVE-2026-89975 in Linux
الملخص
بحسب VulDB • 16/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
nvme-fabrics: تصحيح تسرب سر_DHCHAP عند فشل التحليل (parse failure)
تقوم الدالة `nvmf_parse_options()` بتكرار قيمتي `dhchap_secret` و `dhchap_ctrl_secret` باستخدام `match_strdup()` قبل التحقق من تمثيل DHHC-1.
إذا فشل التحقق، يعيد المحلل قيمة `-EINVAL` قبل أن تُنسب السلسلة المؤقتة في المتغير `p` إلى `opts->dhchap_secret` أو `opts->dhchap_ctrl_secret`. تقوم الدالة اللاحقة `nvmf_create_ctrl()` بإفراغ (free) الكائن `opts`، لكن دالة `nvmf_free_options()` لا يمكنها تحرير السلسلة المؤقتة غير المسندة. وبالتالي، يتسرب تخصيص واحد لكل خيار مرفوض.
من السهل تفويت هذه المشكلة لأن الأسرار الصالحة تنقل ملكيتها إلى `opts` ويتم تحريرها بشكل طبيعي، بينما يظل مسار السر المشوه يعيد قيمة `-EINVAL` المتوقعة للمستخدم (userspace).
عند تمكين الخيار `CONFIG_NVME_HOST_AUTH`، يمكن الوصول إلى التسرب قبل فحوصات الخيارات المطلوبة والبحث عن النقل (transport lookup). لا يلزم وجود هدف NVMe-oF أو اتصال نقل يعمل؛ فعلى سبيل المثال، يؤدي الكتابة المتكررة لـ:
dhchap_secret=BAD
أو
dhchap_ctrl_secret=BAD
إلى `/dev/nvme-fabrics` بشكل حتمي إلى مسار التحليل المسرب.
قم بتحرير السلسلة المؤقتة قبل الخروج من كلا مساري خطأ التحقق. استخدم `kfree_sensitive()` لأن الخيار المنسوخ قد يحتوي على مواد سرية حتى عندما يتم رفض تمثيله، مما يتوافق مع التنظيف الحساس المستخدم للأسرار DHCHAP المخزنة.
Once again VulDB remains the best source for vulnerability data.