{"id":24488,"date":"2026-09-16T20:32:23","date_gmt":"2026-09-16T12:32:23","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89801"},"modified":"2026-09-16T20:32:23","modified_gmt":"2026-09-16T12:32:23","slug":"cve-2026-89801","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89801","title":{"rendered":"CVE-2026-89801 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ndrm\/nouveau\/uvmm: fix"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/nouveau\/uvmm: fix premature region free on failed OP_UNMAP_SPARSE<\/p>\n<p>In nouveau_uvmm_bind_job_submit()&#8217;s OP_UNMAP_SPARSE arm, op-&gt;reg is set<br \/>\nfrom nouveau_uvma_region_find(), which only looks the region up and takes<br \/>\nno reference; a region&#8217;s sole reference is its membership in<br \/>\nuvmm-&gt;region_mt. Two failure paths leave op-&gt;reg set: the -ENOENT check<br \/>\nwhen the region is busy, and the drm_gpuvm_sm_unmap_ops_create() failure.<br \/>\nThe sibling nouveau_uvmm_sm_unmap_prepare() failure just below clears<br \/>\nop-&gt;reg; these two do not.<\/p>\n<p>unwind_continue steps back one op, so the failing op is skipped by the<br \/>\nunwind loop and its op-&gt;reg stays set. nouveau_uvmm_bind_job_cleanup()<br \/>\nthen enters its if (op-&gt;reg) branch and calls nouveau_uvma_region_remove()<br \/>\nand nouveau_uvma_region_put() on it, dropping the tree&#8217;s sole reference<br \/>\nand freeing a region this job never created. The comment above the<br \/>\ncleanup loop documents the broken invariant: op-&gt;reg must be NULL on<br \/>\nsubmit failure.<\/p>\n<p>This frees a live region on an unrelated failure, reachable single-job<br \/>\nwhen drm_gpuvm_sm_unmap_ops_create() returns -ENOMEM; if another job owns<br \/>\nthe same region, its cleanup then removes and puts the freed region, a<br \/>\nuse-after-free. Clear op-&gt;reg on both failure paths.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/nouveau\/uvmm: fix premature region free on failed OP_UNMAP_SPARSE<\/p>\n<p>In nouveau_uvmm_bind_job_submit()&#8217;s OP_UNMAP_SPARSE arm, op-<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-24488","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/24488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=24488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}