CVEvulnerability
CVE-2026-89802
- Status
- Received
- Published
- 2026-09-16
- Last modified
- 2026-10-21
- Assigner
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Description
In the Linux kernel, the following vulnerability has been resolved:
drm/nouveau/uvmm: fix NULL deref unwinding an OP_MAP_SPARSE op
Each bind_job_op is zeroed by kzalloc_obj() in bind_job_op_from_uop(),
and the OP_MAP_SPARSE case in nouveau_uvmm_bind_job_submit() only creates
a region, so op->ops stays NULL for a successfully processed sparse map.
If a later op in the same job fails, the reverse unwind loop revisits that
op and calls drm_gpuva_ops_free(&uvmm->base, op->ops) unconditionally.
drm_gpuva_ops_free() dereferences its argument right away
(list_for_each_entry_safe on &ops->list), so a NULL op->ops oopses. The
path is reachable by any render-node fd holder, since NOUVEAU_VM_BIND is
DRM_RENDER_ALLOW.
Guard the free with IS_ERR_OR_NULL(), as nouveau_uvmm_bind_job_cleanup()
already does for the identical free.
References
- https://git.kernel.org/stable/c/3857238de6bce6c1573e8cb86c37b067e5208f05 git.kernel.org
- https://git.kernel.org/stable/c/3bf493cf7ed0c2b3df728977a257e0d99b4db1c6 git.kernel.org
- https://git.kernel.org/stable/c/412a6ceb56d501ef2f8202e26ab4b5d4dfbca566 git.kernel.org
- https://git.kernel.org/stable/c/b7dc03e09313d22a6d230b759de3b05d504c008f git.kernel.org
- https://git.kernel.org/stable/c/d8ec34618e71018fd7a3f73c57c6b92d71a6c7c3 git.kernel.org