Skip to content
OpenAdvisories
High · 7.8 CVE-2024-46847 EUVD-2024-42108GHSA-9r77-32hh-rxf4

mm: vmalloc: ensure vmap_block is initialised before adding to queue

Published Sep 27, 2024 · Updated Aug 5, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-6.8 Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.8 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-6.8 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-gcp Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.8 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-6.8 Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.19 Package: linux-hwe-5.8 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-6.8 Package: linux-hwe-edge Package: linux-ibm Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-lowlatency Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lowlatency-hwe-6.8 Package: linux-nvidia Package: linux-nvidia-6.2 Package: linux-nvidia-6.8 Package: linux-nvidia-lowlatency Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.5 Package: linux-oem-6.8 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.3 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-raspi Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.5 Package: linux-riscv-6.8 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

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.

Affected products

VendorProductAffectedFixed
Linux Linux 6.6.37 – < 6.6.51, 6.9.8 – < 6.10, 6.10 6.6.51

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 6.10.11-1 —
Debian 13 linux 6.10.11-1 —
ReleasePackageFixed inAdvisory
Ubuntu 24.04 LTS linux 6.8.0-50.51 USN-7154-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1020.22 USN-7154-1
Ubuntu 24.04 LTS linux-azure 6.8.0-1020.23 USN-7196-1
Ubuntu 24.04 LTS linux-gcp +1 6.8.0-1019.21 USN-7155-1, USN-7154-1
Ubuntu 24.04 LTS linux-gke 6.8.0-1015.19 USN-7154-1
Ubuntu 24.04 LTS linux-ibm 6.8.0-1017.17 USN-7154-1
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1019.21.1 USN-7155-1
Ubuntu 24.04 LTS linux-oem-6.8 6.8.0-1018.18 USN-7154-1
Ubuntu 24.04 LTS linux-oracle 6.8.0-1017.18 USN-7154-1
Ubuntu 24.04 LTS linux-raspi 6.8.0-1016.18 USN-7154-1
Ubuntu 24.04 LTS linux-riscv +1 6.8.0-50.51.1 USN-7154-1
Ubuntu 22.04 LTS linux-aws-6.8 6.8.0-1020.22~22.04.1 USN-7154-1
Ubuntu 22.04 LTS linux-azure-6.8 6.8.0-1020.23~22.04.1 USN-7196-1
Ubuntu 22.04 LTS linux-gcp-6.8 +1 6.8.0-1019.21~22.04.1 USN-7155-1, USN-7154-1
Ubuntu 22.04 LTS linux-hwe-6.8 6.8.0-50.51~22.04.1 USN-7154-2
Ubuntu 22.04 LTS linux-oracle-6.8 6.8.0-1017.18~22.04.1 USN-7154-1
Ubuntu 22.04 LTS linux-riscv +31 No fix yet —
Ubuntu 22.04 LTS linux-riscv-6.8 +1 6.8.0-50.51.1~22.04.1 USN-7154-1
Ubuntu 20.04 LTS linux-gke +26 No fix yet —
Ubuntu 18.04 LTS linux-gcp +13 No fix yet —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2015.16 —
Ubuntu Pro Realtime 24.04 LTS linux-realtime 6.8.1-1013.14 —

Advisories 5

References