We use these services and cookies to improve your user experience. You may opt out if you wish, however, this may limit some features on this site.

Please see our statement on Data Privacy.

Crisp.chat (Helpdesk and Chat)

Ok

THREATINT
PUBLISHED

CVE-2024-45022

mm/vmalloc: fix page mapping if vm_area_alloc_pages() with high order fallback to order 0



Description

In the Linux kernel, the following vulnerability has been resolved: mm/vmalloc: fix page mapping if vm_area_alloc_pages() with high order fallback to order 0 The __vmap_pages_range_noflush() assumes its argument pages** contains pages with the same page shift. However, since commit e9c3cda4d86e ("mm, vmalloc: fix high order __GFP_NOFAIL allocations"), if gfp_flags includes __GFP_NOFAIL with high order in vm_area_alloc_pages() and page allocation failed for high order, the pages** may contain two different page shifts (high order and order-0). This could lead __vmap_pages_range_noflush() to perform incorrect mappings, potentially resulting in memory corruption. Users might encounter this as follows (vmap_allow_huge = true, 2M is for PMD_SIZE): kvmalloc(2M, __GFP_NOFAIL|GFP_X) __vmalloc_node_range_noprof(vm_flags=VM_ALLOW_HUGE_VMAP) vm_area_alloc_pages(order=9) ---> order-9 allocation failed and fallback to order-0 vmap_pages_range() vmap_pages_range_noflush() __vmap_pages_range_noflush(page_shift = 21) ----> wrong mapping happens We can remove the fallback code because if a high-order allocation fails, __vmalloc_node_range_noprof() will retry with order-0. Therefore, it is unnecessary to fallback to order-0 here. Therefore, fix this by removing the fallback code.

Reserved 2024-08-21 | Published 2024-09-11 | Updated 2024-11-05 | Assigner Linux

Product status

Default status
unaffected

fe5c2bdcb14c before fd1ffbb50ef4
affected

e9c3cda4d86e before de7bad86345c
affected

e9c3cda4d86e before c91618816f4d
affected

e9c3cda4d86e before 61ebe5a747da
affected

Default status
affected

6.3
affected

Any version before 6.3
unaffected

6.1.107
unaffected

6.6.48
unaffected

6.10.7
unaffected

6.11
unaffected

References

git.kernel.org/...c/fd1ffbb50ef4da5e1378a46616b6d7407dc795da

git.kernel.org/...c/de7bad86345c43cd040ed43e20d9fad78a3ee59f

git.kernel.org/...c/c91618816f4d21fc574d7577a37722adcd4075b2

git.kernel.org/...c/61ebe5a747da649057c37be1c37eb934b4af79ca

cve.org (CVE-2024-45022)

nvd.nist.gov (CVE-2024-45022)

Download JSON

Share this page
https://cve.threatint.com/CVE/CVE-2024-45022

Support options

Helpdesk Chat, Email, Knowledgebase
Telegram Chat
Subscribe to our newsletter to learn more about our work.