CVE-2024-53192CWE-120

CVE-2024-53192

High · published December 27, 2024

CVSS v3.1
7.8
EPSS
0%
Percentile
14.5
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

clk: clk-loongson2: Fix potential buffer overflow in flexible-array member access

Flexible-array member `hws` in `struct clk_hw_onecell_data` is annotated

with the `counted_by()` attribute. This means that when memory is

allocated for this array, the _counter_, which in this case is member

`num` in the flexible structure, should be set to the maximum number of

elements the flexible array can contain, or fewer.

In this case, the total number of elements for the flexible array is

determined by variable `clks_num` when allocating heap space via

`devm_kzalloc()`, as shown below:

289 struct loongson2_clk_provider *clp;

...

296 for (p = data; p->name; p++)

297 clks_num++;

298

299 clp = devm_kzalloc(dev, struct_size(clp, clk_data.hws, clks_num),

300 GFP_KERNEL);

So, `clp->clk_data.num` should be set to `clks_num` or less, and not

exceed `clks_num`, as is currently the case. Otherwise, if data is

written into `clp->clk_data.hws[clks_num]`, the instrumentation

provided by the compiler won't detect the overflow, leading to a

memory corruption bug at runtime.

Fix this issue by setting `clp->clk_data.num` to `clks_num`.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00242 · 14.5th percentile
Weakness
CWE-120 · Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
Published
2024-12-27T19:15Z
Affected products (2)
ProductVersionsFixed in
linux/linux_kernel≥ 6.10, < 6.11.116.11.11
linux/linux_kernel≥ 6.12, < 6.12.26.12.2
References (3)
EPSS history
Timeline
  • 27 DEC 13:49Z
    clk: clk-loongson2: Fix potential buffer overflow in flexible-array member access
    cvelistv5