Improper Input Validation Affecting kernel-64k-modules-extra package, versions *


Severity

Recommended
low

Based on CentOS security rating.

Threat Intelligence

EPSS
0.04% (12th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Improper Input Validation vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-CENTOS9-KERNEL64KMODULESEXTRA-6547898
  • published18 Apr 2024
  • disclosed3 Apr 2024

Introduced: 3 Apr 2024

CVE-2024-26712  (opens in a new tab)
CWE-20  (opens in a new tab)

How to fix?

There is no fixed version for Centos:9 kernel-64k-modules-extra.

NVD Description

Note: Versions mentioned in the description apply only to the upstream kernel-64k-modules-extra package and not the kernel-64k-modules-extra package as distributed by Centos. See How to fix? for Centos:9 relevant fixed versions and status.

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.

CVSS Scores

version 3.1