CVE-2024-39462 clk: bcm: dvp: Assign ->num before accessing ->hws
A missing initialization in the BCM DVP clock driver causes an out-of-bounds access warning, potentially leading to a denial of service.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2024-39462?
CVE-2024-39462 is a critical vulnerability in Linux kernel, published on 25 Jun 2024. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
In the Linux kernel, the following vulnerability has been resolved:
clk: bcm: dvp: Assign ->num before accessing ->hws
Commit f316cdff8d67 ("clk: Annotate struct clk_hw_onecell_data with __counted_by") annotated the hws member of 'struct clk_hw_onecell_data' with __counted_by, which informs the bounds sanitizer about the number of elements in hws, so that it can warn when hws is accessed out of bounds. As noted in that change, the __counted_by member must be initialized with the number of elements before the first array access happens, otherwise there will be a warning from each access prior to the initialization because the number of elements is zero. This occurs in clk_dvp_probe() due to ->num being assigned after ->hws has been accessed:
UBSAN: array-index-out-of-bounds in drivers/clk/bcm/clk-bcm2711-dvp.c:59:2 index 0 is out of range for type 'struct clk_hw *[] __counted_by(num)' (aka 'struct clk_hw *[]')
Move the ->num initialization to before the first access of ->hws, which clears up the warning.
Weakness: CWE-400
Which versions are affected by CVE-2024-39462?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2024-39462?
Apply the vendor's patch.
Is CVE-2024-39462 being exploited?
There is no known exploitation of CVE-2024-39462 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as BELL-CVE-2024-39462, DEBIAN-CVE-2024-39462, GHSA-c94h-cmw2-96cv, UBUNTU-CVE-2024-39462.