{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-53819","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-12-08T23:58:35.277Z","datePublished":"2025-12-09T00:01:17.936Z","dateUpdated":"2026-08-05T09:16:12.588Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T09:16:12.588Z"},"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"}],"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."}]}],"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_vm.c"],"versions":[{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","lessThan":"82aace80cfaab778245bd2f9e31b67953725e4d0","status":"affected","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","lessThan":"d83c337e654d58d3edd15a2ae76e87dc601c07d9","status":"affected","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","lessThan":"968e27fd037ec4732068820a9b9836eccc0e0a12","status":"affected","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","lessThan":"4300a47e4017c9febb60ffa7d39723eeaed00f2b","status":"affected","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","lessThan":"b10db1d2137415e5e7f9706d96cfe77539c499d4","status":"affected","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","lessThan":"f015aadc0d973047f49526a127e900c488d4e425","status":"affected","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","lessThan":"bc6dbf34dc4fb639522f3e8e66ef05997c0441ee","status":"affected","versionType":"git"},{"version":"9f7eb5367d0001536c361bd1400e14521f854ff1","lessThan":"9f0bcf49e9895cb005d78b33a5eebfa11711b425","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_vm.c"],"versions":[{"version":"4.2","status":"affected"},{"version":"0","lessThan":"4.2","status":"unaffected","versionType":"semver"},{"version":"4.19.313","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4.275","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.188","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.121","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.39","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.3.13","lessThanOrEqual":"6.3.*","status":"unaffected","versionType":"semver"},{"version":"6.4.4","lessThanOrEqual":"6.4.*","status":"unaffected","versionType":"semver"},{"version":"6.5","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":"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"}]}]}],"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"}],"title":"amdgpu: validate offset_in_bo of drm_amdgpu_gem_va","x_generator":{"engine":"bippy-1.2.0"}}}}