CVE-2022-50523
MEDIUMCVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Lifecycle Timeline
3Description
In the Linux kernel, the following vulnerability has been resolved: clk: rockchip: Fix memory leak in rockchip_clk_register_pll() If clk_register() fails, @pll->rate_table may have allocated memory by kmemdup(), so it needs to be freed, otherwise will cause memory leak issue, this patch fixes it.
Analysis
A memory leak vulnerability exists in the Linux kernel's Rockchip clock driver (rockchip_clk_register_pll function) where allocated memory from kmemdup() is not freed when clk_register() fails, potentially causing denial of service through memory exhaustion. All versions of the Linux kernel with Rockchip clock support are affected. An attacker with local privileges can trigger repeated clock registration failures to exhaust system memory and crash the system, with an EPSS score of 0.01% indicating very low real-world exploitation probability despite the moderate CVSS score of 5.5.
Technical Context
The vulnerability resides in the Linux kernel's clock framework driver for Rockchip SoCs, specifically in the rockchip_clk_register_pll() function. The root cause is a CWE-401 (Missing Release of Memory after Effective Lifetime) issue where the rate_table field is allocated via kmemdup() but is not freed in the error handling path when clk_register() fails. This is a classic resource cleanup failure in C kernel code where allocated heap memory persists even after the initialization failure, leading to memory accumulation over repeated invocations. The affected product is the Linux kernel (cpe:2.3:o:linux:linux_kernel) across all affected versions, with patches available in multiple stable kernel branches including commits 20201c3a0a32f127fa4bdf379d6ac01c2978702d and others.
Affected Products
All versions of the Linux kernel with Rockchip clock driver support are affected, as indicated by the generic CPE cpe:2.3:o:linux:linux_kernel. The vulnerability impacts Rockchip SoC platforms that use the clk-rockchip driver module. Patches have been released for multiple stable kernel series including commits available at https://git.kernel.org/stable/c/20201c3a0a32f127fa4bdf379d6ac01c2978702d, https://git.kernel.org/stable/c/26b94635f1c84d7f6cb482179125cb17e59c90a5, and six additional stable branches, indicating the fix has been backported across kernel versions 4.19 through 6.x.
Remediation
Update the Linux kernel to the latest version for your stable series, which includes the memory leak fix in rockchip_clk_register_pll(). The patch is available across multiple kernel branches; identify your current kernel version with 'uname -r' and upgrade to the latest patch release of that branch or newer. For systems running Rockchip-based SoCs (commonly found in ARM devices like Chromebooks, tablets, and embedded systems), apply the next available kernel security update. If immediate patching is not feasible, restrict local access to privileged operations that could repeatedly trigger clock registration failures, though this is not a practical workaround given the internal nature of the clock framework. Monitor kernel security advisories for your distribution at your vendor's security page (e.g., kernel.org for upstream Linux).
Priority Score
Vendor Status
Share
External POC / Exploit Code
Leaving vuln.today