{"id":"CVE-2023-53819","state":"PUBLISHED","title":"amdgpu: validate offset_in_bo of drm_amdgpu_gem_va","description":"In the Linux kernel, the following vulnerability has been resolved:\n\namdgpu: validate offset_in_bo of drm_amdgpu_gem_va\n\nThis is motivated by OOB access in amdgpu_vm_update_range when\noffset_in_bo+map_size overflows.\n\nv2: keep the validations in amdgpu_vm_bo_map\nv3: add the validations to amdgpu_vm_bo_map/amdgpu_vm_bo_replace_map\n    rather than to amdgpu_gem_va_ioctl","publishedAt":"2025-12-09T00:01:17.936Z","updatedAt":"2026-08-05T09:16:12.588Z","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":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"82aace80cfaab778245bd2f9e31b67953725e4d0","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"d83c337e654d58d3edd15a2ae76e87dc601c07d9","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"968e27fd037ec4732068820a9b9836eccc0e0a12","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"4300a47e4017c9febb60ffa7d39723eeaed00f2b","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"b10db1d2137415e5e7f9706d96cfe77539c499d4","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"f015aadc0d973047f49526a127e900c488d4e425","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"bc6dbf34dc4fb639522f3e8e66ef05997c0441ee","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"9f0bcf49e9895cb005d78b33a5eebfa11711b425","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.2","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.2","versionType":"semver"},{"version":"4.19.313","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.275","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.188","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.121","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.39","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.3.13","status":"unaffected","lessThanOrEqual":"6.3.*","versionType":"semver"},{"version":"6.4.4","status":"unaffected","lessThanOrEqual":"6.4.*","versionType":"semver"},{"version":"6.5","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/amdgpu/amdgpu_vm.c"]}],"references":["https://git.kernel.org/stable/c/82aace80cfaab778245bd2f9e31b67953725e4d0","https://git.kernel.org/stable/c/d83c337e654d58d3edd15a2ae76e87dc601c07d9","https://git.kernel.org/stable/c/968e27fd037ec4732068820a9b9836eccc0e0a12","https://git.kernel.org/stable/c/4300a47e4017c9febb60ffa7d39723eeaed00f2b","https://git.kernel.org/stable/c/b10db1d2137415e5e7f9706d96cfe77539c499d4","https://git.kernel.org/stable/c/f015aadc0d973047f49526a127e900c488d4e425","https://git.kernel.org/stable/c/bc6dbf34dc4fb639522f3e8e66ef05997c0441ee","https://git.kernel.org/stable/c/9f0bcf49e9895cb005d78b33a5eebfa11711b425"],"weaknesses":[],"ingestedAt":"2026-10-29T20:06:33.064Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2023/53xxx/CVE-2023-53819.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-53819","state":"PUBLISHED","datePublished":"2025-12-09T00:01:17.936Z","dateUpdated":"2026-08-05T09:16:12.588Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-12-08T23:58:35.277Z"},"containers":{"cna":{"title":"amdgpu: validate offset_in_bo of drm_amdgpu_gem_va","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\namdgpu: validate offset_in_bo of drm_amdgpu_gem_va\n\nThis is motivated by OOB access in amdgpu_vm_update_range when\noffset_in_bo+map_size overflows.\n\nv2: keep the validations in amdgpu_vm_bo_map\nv3: add the validations to amdgpu_vm_bo_map/amdgpu_vm_bo_replace_map\n    rather than to amdgpu_gem_va_ioctl"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"82aace80cfaab778245bd2f9e31b67953725e4d0","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"d83c337e654d58d3edd15a2ae76e87dc601c07d9","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"968e27fd037ec4732068820a9b9836eccc0e0a12","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"4300a47e4017c9febb60ffa7d39723eeaed00f2b","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"b10db1d2137415e5e7f9706d96cfe77539c499d4","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"f015aadc0d973047f49526a127e900c488d4e425","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"bc6dbf34dc4fb639522f3e8e66ef05997c0441ee","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","status":"affected","lessThan":"9f0bcf49e9895cb005d78b33a5eebfa11711b425","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.2","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.2","versionType":"semver"},{"version":"4.19.313","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.275","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.188","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.121","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.39","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.3.13","status":"unaffected","lessThanOrEqual":"6.3.*","versionType":"semver"},{"version":"6.4.4","status":"unaffected","lessThanOrEqual":"6.4.*","versionType":"semver"},{"version":"6.5","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/amdgpu/amdgpu_vm.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/82aace80cfaab778245bd2f9e31b67953725e4d0"},{"url":"https://git.kernel.org/stable/c/d83c337e654d58d3edd15a2ae76e87dc601c07d9"},{"url":"https://git.kernel.org/stable/c/968e27fd037ec4732068820a9b9836eccc0e0a12"},{"url":"https://git.kernel.org/stable/c/4300a47e4017c9febb60ffa7d39723eeaed00f2b"},{"url":"https://git.kernel.org/stable/c/b10db1d2137415e5e7f9706d96cfe77539c499d4"},{"url":"https://git.kernel.org/stable/c/f015aadc0d973047f49526a127e900c488d4e425"},{"url":"https://git.kernel.org/stable/c/bc6dbf34dc4fb639522f3e8e66ef05997c0441ee"},{"url":"https://git.kernel.org/stable/c/9f0bcf49e9895cb005d78b33a5eebfa11711b425"}],"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 the `DRM_IOCTL_AMDGPU_GEM_VA` ioctl on a local DRM device node (`/dev/dri/renderD*` or `card*`), requiring local system access. There is no network-facing path to `amdgpu_vm_bo_map()`.\nAC:L - A single ioctl with an attacker-chosen page-aligned `offset_in_bo` near 2^64 deterministically wraps the `offset + size` bounds check; there is no race, no timing window, and no dependence on memory layout the attacker cannot influence. The OOB index is fully attacker-controlled, so the target of the wild access can be aimed rather than guessed.\nPR:L - The ioctl is registered `DRM_AUTH|DRM_RENDER_ALLOW`, so any unprivileged local user with access to the render node can invoke it — this includes members of the render/video group, any user with a logind graphical session, containers with GPU passthrough, and sandboxed processes such as browser GPU processes. No root or capability is required.\nUI:N - The attacker performs GEM object creation and the malicious `AMDGPU_VA_OP_MAP`/`AMDGPU_VA_OP_REPLACE` ioctl entirely on its own; no victim action or cooperation is needed.\nS:U - The vulnerable amdgpu driver code and the corrupted kernel memory are within the same security authority (the host kernel). This is standard local kernel compromise rather than a VM or IOMMU boundary escape.\nC:H - The overflowed offset produces an OOB read `pages_addr[cursor.start >> PAGE_SHIFT]` at an attacker-chosen index spanning up to 2^55 bytes past the DMA-address array, and the value read becomes the physical address in a GPU page table entry, letting the attacker's GPU context read arbitrary physical memory. The TT node-walk path additionally performs unbounded OOB reads of kernel heap data.\nI:H - Because the OOB-read value is installed as a GPU PTE physical address, the attacker's own GPU commands gain DMA write access to arbitrary physical memory, giving a full arbitrary-write primitive suitable for kernel code/credential modification. Attacker-controlled page table entries also corrupt the VM state itself.\nA:H - The same input reliably produces kernel crashes — wild pointer dereference in the `node++` mm_nodes walk, a reachable `BUG_ON(start + size > res->size)`, and an effectively unbounded VRAM block-walk loop executed while holding `vm->eviction_lock` with BOs reserved, causing a soft lockup/hang. Any of these panics or wedges the GPU and the system."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T09:16:12.588Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.2","versionEndExcluding":"4.19.313"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.2","versionEndExcluding":"5.4.275"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.2","versionEndExcluding":"5.10.188"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.2","versionEndExcluding":"5.15.121"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.2","versionEndExcluding":"6.1.39"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.2","versionEndExcluding":"6.3.13"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.2","versionEndExcluding":"6.4.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.2","versionEndExcluding":"6.5"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}