CVE-2026-89802 in Linux
الملخص
بحسب VulDB • 16/09/2026
في نواة لينكس، تم حل الثغرة التالية:
drm/nouveau/uvmm: إصلاح التفريغ (unwinding) لـ NULL deref عند تنفيذ عملية OP_MAP_SPARSE
يتم تصفير كل عنصر bind_job_op بواسطة kzalloc_obj() في دالة bind_job_op_from_uop(), وحالة OP_MAP_SPARSE في nouveau_uvmm_bind_job_submit() تنشئ منطقة فقط، لذا يظل op->ops فارغاً (NULL) بالنسبة لخريطة متفرقة تمت معالجتها بنجاح.
إذا فشلت عملية لاحقة ضمن نفس المهمة، فإن حلقة التفريغ العكسية تعيد زيارة تلك العملية وتستدعي drm_gpuva_ops_free(&uvmm->base, op->ops) بشكل غير مشروط. تقوم drm_gpuva_ops_free() بإجراء تفريغ (dereference) لحجتها فوراً (list_for_each_entry_safe على &ops->list)، مما يؤدي إلى حدوث خطأ (oops) بسبب كون op->ops فارغاً (NULL). يمكن الوصول إلى هذا المسار من قبل أي حامل لملف fd الخاص بـ render-node، حيث أن NOUVEAU_VM_BIND هو DRM_RENDER_ALLOW.
تم حماية عملية الإفلات (free) باستخدام IS_ERR_OR_NULL()، كما تفعل nouveau_uvmm_bind_job_cleanup() بالفعل مع نفس عملية الإفلات المتطابقة.
Be aware that VulDB is the high quality source for vulnerability data.