CVE-2024-26712

CVE-2024-26712

High · published April 3, 2024

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

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

powerpc/kasan: Fix addr error caused by page alignment

In kasan_init_region, when k_start is not page aligned, at the begin of

for loop, k_cur = k_start & PAGE_MASK is less than k_start, and then

`va = block + k_cur - k_start` is less than block, the addr va is invalid,

because the memory address space from va to block is not alloced by

memblock_alloc, which will not be reserved by memblock_reserve later, it

will be used by other places.

As a result, memory overwriting occurs.

for example:

int __init __weak kasan_init_region(void *start, size_t size)

{

[...]

/* if say block(dcd97000) k_start(feef7400) k_end(feeff3fe) */

block = memblock_alloc(k_end - k_start, PAGE_SIZE);

[...]

for (k_cur = k_start & PAGE_MASK; k_cur < k_end; k_cur += PAGE_SIZE) {

/* at the begin of for loop

* block(dcd97000) va(dcd96c00) k_cur(feef7000) k_start(feef7400)

* va(dcd96c00) is less than block(dcd97000), va is invalid

*/

void *va = block + k_cur - k_start;

[...]

}

[...]

}

Therefore, page alignment is performed on k_start before

memblock_alloc() to ensure the validity of the VA address.

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.00250 · 15.4th percentile
Published
2024-04-03T19:15Z
Affected products (10)
ProductVersionsFixed in
linux/linux_kernel≥ 5.4, < 5.10.2105.10.210
linux/linux_kernel≥ 5.11, < 5.15.1495.15.149
linux/linux_kernel≥ 5.16, < 6.1.796.1.79
linux/linux_kernel≥ 6.2, < 6.6.186.6.18
linux/linux_kernel≥ 6.7, < 6.7.66.7.6
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
debian/debian_linuxall versions—
References (13)
EPSS history
Timeline
  • 03 APR 14:55Z
    powerpc/kasan: Fix addr error caused by page alignment
    cvelistv5