{"id":7308,"date":"2026-09-04T18:49:30","date_gmt":"2026-09-04T10:49:30","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74357"},"modified":"2026-09-04T18:49:30","modified_gmt":"2026-09-04T10:49:30","slug":"cve-2026-74357","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74357","title":{"rendered":"CVE-2026-74357 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ndrm\/amdgpu: fix KASAN"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/amdgpu: fix KASAN slab-out-of-bounds in amdgpu_coredump ring dump<\/p>\n<p>The ring content dump in amdgpu_coredump() uses two separate loops over<br \/>\nadev-&gt;rings[]: the first counts rings with unsignalled fences to size<br \/>\nthe allocation, and the second copies ring data into the allocated<br \/>\nbuffers.<\/p>\n<p>Both loops use the same condition to skip rings:<\/p>\n<p>    atomic_read(&amp;ring-&gt;fence_drv.last_seq) == ring-&gt;fence_drv.sync_seq<\/p>\n<p>Because last_seq is an atomic that is updated concurrently by the fence<br \/>\nsignalling path, additional rings may appear unsignalled in the second<br \/>\nloop that were signalled during the first. When this happens, idx<br \/>\nexceeds the allocated ring_count and the store to coredump-&gt;rings[idx]<br \/>\nwrites past the end of the kcalloc-ed buffer.<\/p>\n<p>This was found during IGT stressful test amd_queue_reset which<br \/>\ntriggers random GPU resets. The OVERSIZE subtest<br \/>\n(CMD_STREAM_EXEC_INVALID_PACKET_LENGTH_OVERSIZE on GFX ring) provokes<br \/>\na ring timeout and subsequent coredump, which hits the race between<br \/>\nthe counting and copying loops. The failure is non-deterministic and<br \/>\ndepends on fence signalling timing during the reset.<\/p>\n<p>KASAN log:<\/p>\n<p>  BUG: KASAN: slab-out-of-bounds in amdgpu_coredump+0x1274\/0x12f0 [amdgpu]<br \/>\n  Write of size 4 at addr ffff888106154258 by task kworker\/u128:5\/23625<br \/>\n  CPU: 16 UID: 0 PID: 23625 Comm: kworker\/u128:5 Not tainted 6.19.0+ #35<br \/>\n  Workqueue: amdgpu-reset-dev drm_sched_job_timedout [gpu_sched]<br \/>\n  Call Trace:<\/p>\n<p>   dump_stack_lvl+0xa5\/0x110<br \/>\n   print_report+0xd1\/0x660<br \/>\n   kasan_report+0xf3\/0x130<br \/>\n   __asan_report_store4_noabort+0x17\/0x30<br \/>\n   amdgpu_coredump+0x1274\/0x12f0 [amdgpu]<br \/>\n   amdgpu_job_timedout+0xef0\/0x16c0 [amdgpu]<br \/>\n   drm_sched_job_timedout+0x194\/0x5c0 [gpu_sched]<br \/>\n   process_one_work+0x84b\/0x1990<br \/>\n   worker_thread+0x6b8\/0x11b0<\/p>\n<p>  Allocated by task 23625:<br \/>\n   kasan_save_stack+0x39\/0x70<br \/>\n   __kasan_kmalloc+0xc3\/0xd0<br \/>\n   __kmalloc_noprof+0x2ec\/0x910<br \/>\n   amdgpu_coredump+0x5c5\/0x12f0 [amdgpu]<br \/>\n   amdgpu_job_timedout+0xef0\/0x16c0 [amdgpu]<\/p>\n<p>  The buggy address belongs to the object at ffff888106154200<br \/>\n   which belongs to the cache kmalloc-rnd-09-96 of size 96<br \/>\n  The buggy address is located 16 bytes to the right of<br \/>\n   allocated 72-byte region [ffff888106154200, ffff888106154248)<\/p>\n<p>72 bytes = 3 * sizeof(struct amdgpu_coredump_ring), so ring_count was 3<br \/>\nbut idx reached 3+, writing ring_index (at struct offset 16) 16 bytes<br \/>\npast the allocation.<\/p>\n<p>Fix by adding an idx &lt; ring_count guard to the copy loop so it cannot<br \/>\nexceed the allocated count even when the fence state changes between<br \/>\nthe two passes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/amdgpu: fix KASAN slab-out-of-bounds in amdgpu_coredump ring dump<\/p>\n<p>The ring content dump in amdgpu_coredump() uses two separate<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-7308","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/7308","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=7308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}