CVE-2024-46847 Vulnerability Details

  /     /     /  

CVE-2024-46847 Metadata Quick Info

CVE Published: 27/09/2024 | CVE Updated: 05/11/2024 | CVE Year: 2024
Source: Linux | Vendor: Linux | Product: Linux
Status : PUBLISHED

CVE-2024-46847 Description

In the Linux kernel, the following vulnerability has been resolved: mm: vmalloc: ensure vmap_block is initialised before adding to queue Commit 8c61291fd850 ("mm: fix incorrect vbq reference in purge_fragmented_block") extended the \'vmap_block\' structure to contain a \'cpu\' field which is set at allocation time to the id of the initialising CPU. When a new \'vmap_block\' is being instantiated by new_vmap_block(), the partially initialised structure is added to the local \'vmap_block_queue\' xarray before the \'cpu\' field has been initialised. If another CPU is concurrently walking the xarray (e.g. via vm_unmap_aliases()), then it may perform an out-of-bounds access to the remote queue thanks to an uninitialised index. This has been observed as UBSAN errors in Android: | Internal error: UBSAN: array index out of bounds: 00000000f2005512 [#1] PREEMPT SMP | | Call trace: | purge_fragmented_block+0x204/0x21c | _vm_unmap_aliases+0x170/0x378 | vm_unmap_aliases+0x1c/0x28 | change_memory_common+0x1dc/0x26c | set_memory_ro+0x18/0x24 | module_enable_ro+0x98/0x238 | do_init_module+0x1b0/0x310 Move the initialisation of \'vb->cpu\' in new_vmap_block() ahead of the addition to the xarray.

Metrics

CVSS Version: 3.1 | Base Score: n/a
Vector: n/a

l➤ Exploitability Metrics:
    Attack Vector (AV)*
    Attack Complexity (AC)*
    Privileges Required (PR)*
    User Interaction (UI)*
    Scope (S)*

l➤ Impact Metrics:
    Confidentiality Impact (C)*
    Integrity Impact (I)*
    Availability Impact (A)*

Weakness Enumeration (CWE)

CWE-ID:
CWE Name:
Source: Linux

Common Attack Pattern Enumeration and Classification (CAPEC)

CAPEC-ID:
CAPEC Description:


Source: NVD (National Vulnerability Database).