{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2024-41008", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-07-12T12:17:45.610Z", "datePublished": "2024-07-16T08:03:47.091Z", "dateUpdated": "2026-08-05T11:34:34.592Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:34:34.592Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdgpu: change vm->task_info handling\n\nThis patch changes the handling and lifecycle of vm->task_info object.\nThe major changes are:\n- vm->task_info is a dynamically allocated ptr now, and its uasge is\n reference counted.\n- introducing two new helper funcs for task_info lifecycle management\n - amdgpu_vm_get_task_info: reference counts up task_info before\n returning this info\n - amdgpu_vm_put_task_info: reference counts down task_info\n- last put to task_info() frees task_info from the vm.\n\nThis patch also does logistical changes required for existing usage\nof vm->task_info.\n\nV2: Do not block all the prints when task_info not found (Felix)\n\nV3: Fixed review comments from Felix\n - Fix wrong indentation\n - No debug message for -ENOMEM\n - Add NULL check for task_info\n - Do not duplicate the debug messages (ti vs no ti)\n - Get first reference of task_info in vm_init(), put last\n in vm_fini()\n\nV4: Fixed review comments from Felix\n - fix double reference increment in create_task_info\n - change amdgpu_vm_get_task_info_pasid\n - additional changes in amdgpu_gem.c while porting" } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The vulnerability is reached through DRM ioctls on the amdgpu device node (/dev/dri/renderD128 or card0), specifically DRM_IOCTL_AMDGPU_CS job submission followed by fd close. No network or adjacent-network exposure exists.\nAC:L - The attacker controls both sides of the lifetime race: it submits a job that deterministically hangs the ring, closes the fd (which does not wait for in-flight hung jobs), and the ~10-second scheduler timeout gives a large, attacker-scheduled window to groom the freed amdgpu_fpriv slab before the coredump path dereferences the stale vm pointer.\nPR:L - An unprivileged local user with render-node access can do this — on desktop distros logind grants uaccess ACLs on /dev/dri/renderD*, and Android/ChromeOS app sandboxes and GPU-enabled containers likewise expose it. No capability check exists on the amdgpu CS ioctl path.\nUI:N - The attacking process performs every step itself — job submission, fd close, and heap grooming — with no action required from any other user.\nS:U - The stale-pointer read and its consequences stay within the kernel's own security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The use-after-free reads a freed kernel heap object and emits its contents into the devcoredump blob and kernel log, and the unterminated %s print can read past the field, disclosing arbitrary reallocated kernel heap data that the attacker can groom.\nI:H - Use-after-free of a slab object whose contents an attacker can control by reallocation constitutes memory corruption exploitable beyond a simple read; the unsynchronized task_info lifetime is a general object-lifetime confusion, so integrity impact is scored High per UAF guidance.\nA:H - Dereferencing the dangling vm pointer during GPU reset can oops or panic the kernel if the slab page has been returned to the page allocator, and it occurs in the non-recoverable GPU recovery path, which the attacker can trigger repeatedly." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c", "drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c", "drivers/gpu/drm/amd/amdgpu/amdgpu_job.c", "drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c", "drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c", "drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h", "drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c", "drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c", "drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c", "drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c", "drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c", "drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c", "drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c", "drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c" ], "versions": [ { "version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21", "lessThan": "b8f67b9ddf4f8fe6dd536590712b5912ad78f99c", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c", "drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c", "drivers/gpu/drm/amd/amdgpu/amdgpu_job.c", "drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c", "drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c", "drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h", "drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c", "drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c", "drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c", "drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c", "drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c", "drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c", "drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c", "drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c" ], "versions": [ { "version": "4.2", "status": "affected" }, { "version": "0", "lessThan": "4.2", "status": "unaffected", "versionType": "semver" }, { "version": "6.9", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.2", "versionEndExcluding": "6.9" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/b8f67b9ddf4f8fe6dd536590712b5912ad78f99c" } ], "title": "drm/amdgpu: change vm->task_info handling", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2024-08-02T04:39:56.069Z" }, "title": "CVE Program Container", "references": [ { "url": "https://git.kernel.org/stable/c/b8f67b9ddf4f8fe6dd536590712b5912ad78f99c", "tags": [ "x_transferred" ] } ] }, { "metrics": [ { "other": { "type": "ssvc", "content": { "id": "CVE-2024-41008", "role": "CISA Coordinator", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "partial" } ], "version": "2.0.3", "timestamp": "2024-09-10T17:00:49.381223Z" } } } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2024-09-11T17:34:18.174Z" } } ] } }