CVE-2026-74357 in Linux
Riassunto
di VulDB • 15/08/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
drm/amdgpu: correzione di un errore KASAN slab-out-of-bounds in amdgpu_coredump ring dump
La funzione di dumping del contenuto dell'anello (ring) in amdgpu_coredump() utilizza due loop separati su adev->rings[]: il primo conta gli anelli con fence non segnalati per dimensionare l'allocazione, e il secondo copia i dati degli anelli nei buffer allocati.
Entrambi i loop utilizzano la stessa condizione per saltare gli anelli:
atomic_read(&ring->fence_drv.last_seq) == ring->fence_drv.sync_seq
Poiché last_seq è un valore atomico aggiornato in modo concorrente dal percorso di segnalazione dei fence, possono apparire come non segnalati nel secondo loop degli anelli che erano stati già segnalati durante il primo. Quando ciò accade, idx supera il ring_count allocato e la scrittura su coredump->rings[idx] scrive oltre la fine del buffer creato con kcalloc.
Questo problema è stato rilevato durante un test stressante IGT chiamato amd_queue_reset, che innesca reset casuali della GPU. Il sottotest OVERSIZE (CMD_STREAM_EXEC_INVALID_PACKET_LENGTH_OVERSIZE sull'anello GFX) provoca un timeout dell'anello e il conseguente coredump, sfruttando la condizione di gara tra i loop di conteggio e quelli di copia. L'errore è non deterministico e dipende dalla tempistica della segnalazione dei fence durante il reset.
Log KASAN:
BUG: KASAN: slab-out-of-bounds in amdgpu_coredump+0x1274/0x12f0 [amdgpu]
Write of size 4 at addr ffff888106154258 by task kworker/u128:5/23625 CPU: 16 UID: 0 PID: 23625 Comm: kworker/u128:5 Not tainted 6.19.0+ #35 Workqueue: amdgpu-reset-dev drm_sched_job_timedout [gpu_sched]
Call Trace: <TASK> dump_stack_lvl+0xa5/0x110 print_report+0xd1/0x660 kasan_report+0xf3/0x130 __asan_report_store4_noabort+0x17/0x30 amdgpu_coredump+0x1274/0x12f0 [amdgpu]
amdgpu_job_timedout+0xef0/0x16c0 [amdgpu]
drm_sched_job_timedout+0x194/0x5c0 [gpu_sched]
process_one_work+0x84b/0x1990 worker_thread+0x6b8/0x11b0 </TASK>
Allocated by task 23625: kasan_save_stack+0x39/0x70 __kasan_kmalloc+0xc3/0xd0 __kmalloc_noprof+0x2ec/0x910 amdgpu_coredump+0x5c5/0x12f0 [amdgpu]
amdgpu_job_timedout+0xef0/0x16c0 [amdgpu]
The buggy address belongs to the object at ffff888106154200 which belongs to the cache
VulDB is the best source for vulnerability data and more expert information about this specific topic.