{"id":15073,"date":"2026-09-04T19:02:24","date_gmt":"2026-09-04T11:02:24","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-64099"},"modified":"2026-09-04T19:02:24","modified_gmt":"2026-09-04T11:02:24","slug":"cve-2026-64099","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-64099","title":{"rendered":"CVE-2026-64099 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ndrm\/v3d: Fix use-afte"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/v3d: Fix use-after-free of CPU job query arrays on error path<\/p>\n<p>The CPU job ioctl&#8217;s fail label calls kvfree() on cpu_job&#8217;s timestamp and<br \/>\nperformance query arrays after v3d_job_cleanup(), which drops the job&#8217;s<br \/>\nlast reference and frees cpu_job. Reading cpu_job at that point is a<br \/>\nuse-after-free. Also, on the early v3d_job_init() failure path, it is a<br \/>\nNULL dereference, since v3d_job_deallocate() zeroes the local pointer.<\/p>\n<p>In the success path, the arrays are released from the scheduler&#8217;s<br \/>\n.free_job callback, but on the error path, they are freed manually, as<br \/>\nthe job was never pushed to the scheduler. While the success path deals<br \/>\nwith this correctly, the fail path doesn&#8217;t.<\/p>\n<p>On top of that, the manual kvfree() calls only free the array storage;<br \/>\nthey don&#8217;t drm_syncobj_put() the per-query syncobjs that<br \/>\nv3d_timestamp_query_info_free() and v3d_performance_query_info_free()<br \/>\nrelease on the success path. So the same fail path that triggers the<br \/>\nuse-after-free also leaks one syncobj reference per query.<\/p>\n<p>Unify the CPU job teardown into the CPU job&#8217;s kref destructor, mirroring<br \/>\nv3d_render_job_free(). The scheduler&#8217;s .free_job slot reverts to the<br \/>\ngeneric v3d_sched_job_free() and the fail label drops the manual<br \/>\nkvfree() calls, leaving a single teardown path that is reached from both<br \/>\nthe scheduler and the ioctl error path. That removes the use-after-free,<br \/>\nthe NULL dereference, and the syncobj leak by construction.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/v3d: Fix use-after-free of CPU job query arrays on error path<\/p>\n<p>The CPU job ioctl&#8217;s fail label calls kvfree() on cpu_job&#8217;s times<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-15073","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/15073","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=15073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}