drm/amdgpu: don't drop the runtime PM reference twice in amdgpu_gpr
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.9, 6.18.59, 7.2.13
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: don't drop the runtime PM reference twice in amdgpu_gpr amdgpu_debugfs_gpr_read() drops its runtime PM reference right after reading the wave registers. When copying them to userspace fails, it jumps to the err label, which drops the reference a second time. A read into a bad buffer on Navi31 either steals a reference somebody else holds (power/runtime_usage goes from 1 to 0) or underflows the count: amdgpu 0000:03:00.0: Runtime PM usage count underflow! The registers are already in the kernel buffer at that point, so finish the hardware access first and copy the buffer with a single copy_to_user() instead of the put_user() loop with its own error path. (cherry picked from commit 31035bbd74f7c3e10c163db875b8e67f8b50ee6a)
Timeline
- CVE published
- First seen by cve.now
- Record last updated
Affected versions
- Linux Linux
From 5.8.2 · fixed in 5.9
- Linux Linux
5.9
- KernelLinux
From 5.9.0 · fixed in 6.18.59; From 6.19.0 · fixed in 7.2.13
References 8
git.kernel.org
- stable/c/24c1f6e381d564e5f6893323cfe0264950358451
- stable/c/c333834b1b9cbb1021c954d29fa2373ac9e73499
- stable/c/eda6b57a83d942199a5947e73556fe918affad86
- stable/c/f9c0b333a5e44f734478ca8a7345f8b87d65ba7c
- stable/c/35aa048f242cade635f17924183c1df0ffe7a486
- stable/c/652b1f26125fe48aed5f4944698a85b457eef491
- stable/c/253555a9baccefffe1f6e5f2fe54363c7c01ebb9
- stable/c/de9f6bcdb44f0e410031002e2f103826ea6b6259