Linux: drm/amdgpu: fix ACP MFD device leak on init failure
What fixes it
- 2b9a53940a2bc063ea4cd09ee49220a503a0170cLinuxCVE List
- 587469076e4ffb617f7ad1a0c4a13072a3e87113LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: fix ACP MFD device leak on init failure
acp_hw_init() registers ACP child devices with mfd_add_devices() before attaching them to the ACP power domain and initializing the hardware.
If attaching a child to the power domain fails, or if the ACP reset or clock enable operation times out, the failure path frees only the source cell, resource, and platform-data allocations. The child platform devices already registered by mfd_add_devices() remain registered and are never released.
Remove the children from the power domain and unregister the MFD devices on failures that occur after mfd_add_devices() succeeds. Keep mfd_add_devices() failures on the existing cleanup path since the MFD core already rolls back partially registered children itself.
The issue was identified by a static analysis tool I developed and confirmed by manual review.
(cherry picked from commit 63da68d6a2279ec945581c990c5a59a5ae8b5560)
Text from CVE List
Affected versions 12
- Linuxaffected: 25030321ba2860c56651429a4f28d94a6483d952 before d700c26ed64bd3c26e4aa7679b9d5f3333c3747aCVE List
- Linuxaffected: 25030321ba2860c56651429a4f28d94a6483d952 before 2b9a53940a2bc063ea4cd09ee49220a503a0170cCVE List
- Linuxaffected: 25030321ba2860c56651429a4f28d94a6483d952 before 587469076e4ffb617f7ad1a0c4a13072a3e87113CVE List
- Linuxaffected: 25030321ba2860c56651429a4f28d94a6483d952 before abf854513bc19e6e24d45353ac99ec5627ee0accCVE List
- Linuxaffected: 25030321ba2860c56651429a4f28d94a6483d952 before f0013046151b7467e62c471c1c83d63ea255799cCVE List
- Linuxaffected: 4.6CVE List
- Linuxunaffected: all versions before 4.6CVE List
- Linuxunaffected: 6.6.160 through 6.6.*CVE List
- Linuxunaffected: 6.12.113 through 6.12.*CVE List
- Linuxunaffected: 6.18.56 through 6.18.*CVE List
- Linuxunaffected: 7.2.10 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 5
- git.kernel.org/stable/c/d700c26ed64bd3c26e4aa7679b9d5f3333c3747aReferencevia CVE List
- git.kernel.org/stable/c/2b9a53940a2bc063ea4cd09ee49220a503a0170cReferencevia CVE List
- git.kernel.org/stable/c/587469076e4ffb617f7ad1a0c4a13072a3e87113Referencevia CVE List
- git.kernel.org/stable/c/abf854513bc19e6e24d45353ac99ec5627ee0accReferencevia CVE List
- git.kernel.org/stable/c/f0013046151b7467e62c471c1c83d63ea255799cReferencevia CVE List