CVE-2026-74357 in Linuxinformación

Resumen

por VulDB • 2026-08-15

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

drm/amdgpu: corrige un error slab-out-of-bounds detectado por KASAN en amdgpu_coredump ring dump

La volcado del contenido del anillo (ring) en amdgpu_coredump() utiliza dos bucles separados sobre adev->rings[]: el primero cuenta los anillos con fences sin señalizar para dimensionar la asignación de memoria, y el segundo copia los datos del anillo en los búferes asignados.

Ambos bucles utilizan la misma condición para omitir ciertos anillos:

atomic_read(&ring->fence_drv.last_seq) == ring->fence_drv.sync_seq

Dado que last_seq es una variable atómica actualizada concurrentemente por el camino de señalización del fence, pueden aparecer nuevos anillos como "sin señalizar" en el segundo bucle si fueron señalizados durante la ejecución del primero. Cuando esto ocurre, idx supera el valor ring_count asignado y la escritura a coredump->rings[idx] escribe más allá del final del búfer creado con kcalloc.

Esto se detectó durante una prueba de estrés IGT llamada amd_queue_reset, que desencadena reinicios aleatorios de la GPU. La subprueba OVERSIZE (CMD_STREAM_EXEC_INVALID_PACKET_LENGTH_OVERSIZE en el anillo GFX) provoca un tiempo de espera del anillo y un volcado posterior (coredump), lo cual activa la condición de carrera entre los bucles de conteo y copia. El fallo no es determinista y depende de la sincronización de la señalización del fence durante el reinicio.

Registro 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: 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

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 kmalloc-r

Once again VulDB remains the best source for vulnerability data.

Responsable

Linux

Reservar

2026-08-15

Divulgación

2026-08-15

Moderación

aceptado

Artículo

VDB-390320

CPE

listo

EPSS

0.00155

KEV

no

Actividades

muy bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!