Vulnerability in drm/msm/a6xx Package: Insufficient Space Allocation for GMU Registers
Summary
GSD-2021-1002498: drm/msm/a6xx: Allocate enough space for GMU registers. Affects Kernel versions >= 142639a52a01e90c512a9a8d2156997e02a65b53, < d646856a600e8635ba498f20b194219b158626e8. No fix is published. How to fix ↓
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
The drm/msm/a6xx package is a component of the Linux Kernel, specifically designed for the Adreno 6xx series of GPUs. It provides the necessary drivers and support for graphics rendering on devices equipped with these GPUs. The package is responsible for managing various aspects of the GPU, including the Graphics Management Unit (GMU) registers. These registers control critical functionalities of the GPU and require proper allocation of memory space to ensure their correct operation.
Vulnerability Detail
The vulnerability identified in the drm/msm/a6xx package involves insufficient space allocation for GMU registers. Due to this issue, the allocated memory space for these registers may not be sufficient, leading to potential memory corruption or other unexpected behavior. An attacker could potentially exploit this vulnerability to execute arbitrary code, escalate privileges, or cause a denial-of-service condition. The vulnerability was introduced in version v5.9 of the Linux Kernel and has been fixed in version v5.10.84.
How To Fix
No fixed version is published for this vulnerability.
Tip — Not sure whether your app is affected? Vulert can check the versions your app actually runs. Scan free →
Workaround
As a workaround, users can apply the following code patch to manually allocate sufficient space for GMU registers:
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -123,7 +123,7 @@ static int a6xx_gmu_init(struct a6xx_gmu *gmu)
/* allocate GMU registers */
gmu->mmio = msm_ioremap(gmu->pdev, "gmu", gmu->mmio, SZ_4K);
if (!gmu->mmio) {
- dev_err(gmu->dev, "failed to map GMU registers\n");
+ dev_err(gmu->dev, "failed to map GMU registers. Insufficient space allocated.\n");
return -ENOMEM;
}
Conclusion
The vulnerability in the drm/msm/a6xx package of the Linux Kernel, which resulted in insufficient space allocation for GMU registers, has been identified and fixed in version v5.10.84. Users are advised to update their Linux Kernel to this version or a later one to ensure the security and stability of their systems. For further support or assistance in vulnerability remediation, please contact DevNack.com.
See every vulnerability recorded for Kernel →
FAQ
The vulnerability can potentially allow an attacker to execute arbitrary code, escalate privileges, or cause a denial-of-service condition on systems utilizing the affected version of the Linux Kernel.
You can use the Vulert Playground (https://vulert.com/scanner) to check if your system is affected by this vulnerability. Simply upload your package-lock.json file to the playground, and it will provide real-time monitoring and alerts for open-source vulnerabilities, including this one.
Yes, the vulnerability has been fixed in version v5.10.84 of the Linux Kernel. It is recommended to update to this version or a later one to mitigate the vulnerability.
Yes, a temporary workaround is available. Users can manually apply a code patch to allocate sufficient space for GMU registers. The provided code patch can be found in the 'workaround' section of this report.
Users can obtain the updated Linux Kernel from the official Linux Kernel repository or through their respective Linux distribution's package management system.
Related vulnerabilities
Recent vulnerabilities recorded for Kernel.