drm/amdgpu: zero-initialize GART table on allocation
21Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 8.8epss 0.1%
exploitation probability
0.1%top 98% of all CVEs
observed exploitation
nono source reports it
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: zero-initialize GART table on allocation
GART TLB is flushed after unmapping but not after mapping. Since
amdgpu_bo_create_kernel() does not zero-initialize the buffer, when a
single PTE is written the TLB may speculatively load other uninitialized
entries from the same cacheline. Those garbage entries can appear valid,
and a subsequent write to another PTE in the same cacheline may cause the
GPU to use a stale garbage PTE from the TLB.
Fix this by calling memset_io() to zero-initialize the GART table with
gart_pte_flags immediately after allocation.
Using AMDGPU_GEM_CREATE_VRAM_CLEARED, SDMA-based clear will not work
since SDMA needs GART to be initialized to work.
(cherry picked from commit d9af8263b82b6eaa60c5718e0c6631c5037e4b24)
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Affected products
Linux · LinuxReferences
https://git.kernel.org/stable/c/40df11255d71b02e20e70579f1b12b687e396e26https://git.kernel.org/stable/c/791941be5da125d9a1b228582bfdc300c05d05b3https://git.kernel.org/stable/c/8ae8b9e74bab94aab1d79f1688129bcc61c8b29ahttps://git.kernel.org/stable/c/91fbb5e635c8fb1b49e15c19da06480089ef719fhttps://git.kernel.org/stable/c/b17175d0a375b3ed5e81597dac4983fdb46e478dhttps://git.kernel.org/stable/c/e6c2e6c2e1fa066968a16aca1cb66cd1bdde7741