{"id":"CVE-2026-74450","state":"PUBLISHED","title":"drm/amd/pm: fix pptable use-after-free","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amd/pm: fix pptable use-after-free\n\namdgpu_dpm_get_pp_table() returns a pointer to a driver-owned power table\nafter dropping adev->pm.mutex. The sysfs path then copies from that pointer.\nA concurrent pp_table write can replace and free the allocation during the\ncopy, causing a use-after-free.\n\nChange the DPM interface to copy into caller-provided storage while the mutex\nis held. Keep the size-only query for attribute discovery without exposing\nthe driver-owned pointer.\n\n(cherry picked from commit f6eed7acfd30099ef7baeb6ba45bb59daad80631)","publishedAt":"2026-08-15T12:26:55.127Z","updatedAt":"2026-10-16T19:05:46.575Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1684d3ba488529266ce6f97b88076bd185f4790e","status":"affected","lessThan":"3fbb3ac75000e3187f500a91a4099b24206866a1","versionType":"git"},{"version":"1684d3ba488529266ce6f97b88076bd185f4790e","status":"affected","lessThan":"9efc767335234cf7a892e46d45cd453b711421e7","versionType":"git"},{"version":"1684d3ba488529266ce6f97b88076bd185f4790e","status":"affected","lessThan":"81b5af1fb0f14cace6c3b3130a05e5602a597820","versionType":"git"},{"version":"1684d3ba488529266ce6f97b88076bd185f4790e","status":"affected","lessThan":"8c685df5c3b261c42505110965b42f9a754eb9b7","versionType":"git"},{"version":"1684d3ba488529266ce6f97b88076bd185f4790e","status":"affected","lessThan":"b628f2c6feb3a115ea72d3120a2bd94afc5163df","versionType":"git"},{"version":"1684d3ba488529266ce6f97b88076bd185f4790e","status":"affected","lessThan":"bb493058c35c8676e48269ab6732688ea733d23c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/amd/pm/amdgpu_dpm.c","drivers/gpu/drm/amd/pm/amdgpu_pm.c","drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.9","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.9","versionType":"semver"},{"version":"6.1.184","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.153","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.105","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.46","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.8","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/amd/pm/amdgpu_dpm.c","drivers/gpu/drm/amd/pm/amdgpu_pm.c","drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h"]}],"references":["https://git.kernel.org/stable/c/3fbb3ac75000e3187f500a91a4099b24206866a1","https://git.kernel.org/stable/c/9efc767335234cf7a892e46d45cd453b711421e7","https://git.kernel.org/stable/c/81b5af1fb0f14cace6c3b3130a05e5602a597820","https://git.kernel.org/stable/c/8c685df5c3b261c42505110965b42f9a754eb9b7","https://git.kernel.org/stable/c/b628f2c6feb3a115ea72d3120a2bd94afc5163df","https://git.kernel.org/stable/c/bb493058c35c8676e48269ab6732688ea733d23c"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/74xxx/CVE-2026-74450.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-74450","state":"PUBLISHED","datePublished":"2026-08-15T12:26:55.127Z","dateUpdated":"2026-10-16T19:05:46.575Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-15T05:44:03.899Z"},"containers":{"cna":{"title":"drm/amd/pm: fix pptable use-after-free","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amd/pm: fix pptable use-after-free\n\namdgpu_dpm_get_pp_table() returns a pointer to a driver-owned power table\nafter dropping adev->pm.mutex. The sysfs path then copies from that pointer.\nA concurrent pp_table write can replace and free the allocation during the\ncopy, causing a use-after-free.\n\nChange the DPM interface to copy into caller-provided storage while the mutex\nis held. Keep the size-only query for attribute discovery without exposing\nthe driver-owned pointer.\n\n(cherry picked from commit f6eed7acfd30099ef7baeb6ba45bb59daad80631)"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1684d3ba488529266ce6f97b88076bd185f4790e","status":"affected","lessThan":"3fbb3ac75000e3187f500a91a4099b24206866a1","versionType":"git"},{"version":"1684d3ba488529266ce6f97b88076bd185f4790e","status":"affected","lessThan":"9efc767335234cf7a892e46d45cd453b711421e7","versionType":"git"},{"version":"1684d3ba488529266ce6f97b88076bd185f4790e","status":"affected","lessThan":"81b5af1fb0f14cace6c3b3130a05e5602a597820","versionType":"git"},{"version":"1684d3ba488529266ce6f97b88076bd185f4790e","status":"affected","lessThan":"8c685df5c3b261c42505110965b42f9a754eb9b7","versionType":"git"},{"version":"1684d3ba488529266ce6f97b88076bd185f4790e","status":"affected","lessThan":"b628f2c6feb3a115ea72d3120a2bd94afc5163df","versionType":"git"},{"version":"1684d3ba488529266ce6f97b88076bd185f4790e","status":"affected","lessThan":"bb493058c35c8676e48269ab6732688ea733d23c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/amd/pm/amdgpu_dpm.c","drivers/gpu/drm/amd/pm/amdgpu_pm.c","drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.9","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.9","versionType":"semver"},{"version":"6.1.184","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.153","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.105","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.46","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.8","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/amd/pm/amdgpu_dpm.c","drivers/gpu/drm/amd/pm/amdgpu_pm.c","drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h"]}],"references":[{"url":"https://git.kernel.org/stable/c/3fbb3ac75000e3187f500a91a4099b24206866a1"},{"url":"https://git.kernel.org/stable/c/9efc767335234cf7a892e46d45cd453b711421e7"},{"url":"https://git.kernel.org/stable/c/81b5af1fb0f14cace6c3b3130a05e5602a597820"},{"url":"https://git.kernel.org/stable/c/8c685df5c3b261c42505110965b42f9a754eb9b7"},{"url":"https://git.kernel.org/stable/c/b628f2c6feb3a115ea72d3120a2bd94afc5163df"},{"url":"https://git.kernel.org/stable/c/bb493058c35c8676e48269ab6732688ea733d23c"}],"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 - Reached only via local sysfs read/write on /sys/class/drm/cardN/device/pp_table (amdgpu_get_pp_table/amdgpu_set_pp_table); no network, adjacent, or physical-access path exists into amdgpu_dpm_get_pp_table().\nAC:L - A single attacker can drive both sides of the race with concurrent pp_table read and write threads; the write path holds pm.mutex during smu_reset/smu_sys_set_pp_table() while the read copies up to PAGE_SIZE-1 bytes from a pointer obtained after mutex drop.\nPR:L - Triggering the concurrent write/free requires sysfs write access to pp_table; the kernel CNA's CVE-2025-21780 scored the same attribute PR:L because gaming/handheld udev rules commonly group-write pp_* nodes and the commit describes a concurrent pp_table write.\nUI:N - Exploitation is performed by the attacker's own concurrent sysfs read/write loops; no action by another user or victim is required.\nS:U - The use-after-free corrupts kernel heap memory during a sysfs memcpy in amdgpu_pm.c; impact stays within the kernel security authority with no VM, IOMMU, or sandbox boundary crossed.\nC:H - Use-after-free on a kmalloc'd pp table during memcpy can return freed/reallocated kernel heap contents up to PAGE_SIZE-1 bytes to userspace and enables arbitrary kernel memory reads via heap grooming.\nI:H - Concurrent pp_table writes control kmalloc size/contents while reads dereference the freed pptable, classic UAF heap corruption that can be weaponized for arbitrary kernel writes and privilege escalation.\nA:H - Reading freed pptable memory during memcpy causes kernel oops/panic and smu_reset() during the concurrent write can wedge discrete AMD GPUs; UAF reliably threatens system/GPU availability."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-23T12:47:19.009Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"6.1.184"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"6.6.153"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"6.12.105"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"6.18.46"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"7.1.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-74450","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T18:56:51.440492Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-16T19:05:46.575Z"}}]}}}