CVE-2024-45022: mm/vmalloc: fix page mapping if vm_area_alloc_pages() with high order fallback to order 0
In the Linux kernel, the following vulnerability has been resolved:
mm/vmalloc: fix page mapping if vmareaallocpages() with high order fallback to order 0
The vmappagesrangenoflush() assumes its argument pages contains pages with the same page shift. However, since commit e9c3cda4d86e ("mm, vmalloc: fix high order GFPNOFAIL allocations"), if gfpflags includes GFPNOFAIL with high order in vmareaallocpages() and page allocation failed for high order, the pages may contain two different page shifts (high order and order-0). This could lead vmappagesrangenoflush() to perform incorrect mappings, potentially resulting in memory corruption.
Users might encounter this as follows (vmapallowhuge = true, 2M is for PMDSIZE):
kvmalloc(2M, GFPNOFAIL|GFPX) vmallocnoderangenoprof(vmflags=VMALLOWHUGEVMAP) vmareaallocpages(order=9) ---> order-9 allocation failed and fallback to order-0 vmappagesrange() vmappagesrangenoflush() vmappagesrangenoflush(pageshift = 21) ----> wrong mapping happens
We can remove the fallback code because if a high-order allocation fails, vmallocnoderangenoprof() will retry with order-0. Therefore, it is unnecessary to fallback to order-0 here. Therefore, fix this by removing the fallback code.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 5.10.223-1Fixed in 5.10.234-1Fixed in 6.1.129-1Fixed in 6.1.135-1Fixed in 6.12.25-1Fixed in 6.12.27-1 - Upgrade
Upgrade
debian/linux-6.1to a version that resolves this vulnerability.Fixed in 6.1.129-1~deb11u1
Event History
Frequently Asked Questions
What is the severity of CVE-2024-45022?
CVE-2024-45022 is classified as having a medium severity level due to the potential impacts on memory management in the Linux kernel.
How do I fix CVE-2024-45022?
To address CVE-2024-45022, upgrade to one of the following patched versions: 5.10.223-1, 5.10.226-1, 6.1.123-1, 6.1.119-1, or 6.12.11-1.
Which versions of the Linux kernel are affected by CVE-2024-45022?
CVE-2024-45022 affects Linux kernel versions from 6.1.95 to 6.1.107 and multiple versions between 6.3 and 6.6.48.
What is the nature of the vulnerability in CVE-2024-45022?
CVE-2024-45022 involves an issue in memory management related to page mapping assumptions in the Linux kernel.
Is CVE-2024-45022 a remote vulnerability?
CVE-2024-45022 is not classified as a remote vulnerability, but it can impact the overall stability of affected systems.