CVE-2026-43348

In the Linux kernel, the following vulnerability has been resolved: mshv_vtl: Fix vmemmap_shift exceeding MAX_FOLIO_ORDER When registering VTL0 memory via MSHV_ADD_VTL0_MEMORY, the kernel computes pgmap->vmemmap_shift as the number of trailing zeros in the OR of start_pfn and last_pfn, intending to use the largest compound page order both endpoints are aligned to. However, this value is not clamped to MAX_FOLIO_ORDER, so a sufficiently aligned range (e.g. physical range [0x800000000000, 0x800080000000), corresponding to start_pfn=0x800000000 with 35 trailing zeros) can produce a shift larger than what memremap_pages() accepts, triggering a WARN and returning -EINVAL: WARNING: ... memremap_pages+0x512/0x650 requested folio size unsupported The MAX_FOLIO_ORDER check was added by commit 646b67d57589 ("mm/memremap: reject unreasonable folio/compound page sizes in memremap_pages()"). Fix this by clamping vmemmap_shift to MAX_FOLIO_ORDER so we always request the largest order the kernel supports, in those cases, rather than an out-of-range value. Also fix the error path to propagate the actual error code from devm_memremap_pages() instead of hard-coding -EFAULT, which was masking the real -EINVAL return.
Configurations

Configuration 1 (hide)

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

11 Nov 2026, 20:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: mshv_vtl: Solución para vmemmap_shift excediendo MAX_FOLIO_ORDER Al registrar memoria VTL0 a través de MSHV_ADD_VTL0_MEMORY, el kernel calcula pgmap -> vmemmap_shift como el número de ceros finales en el OR de start_pfn y last_pfn, con la intención de usar el orden de página compuesto más grande al que ambos puntos finales están alineados. Sin embargo, este valor no está limitado a MAX_FOLIO_ORDER, por lo que un rango suficientemente alineado (por ejemplo, rango físico [0x 800000000000, 0x 800080000000), correspondiente a start_pfn=0x 800000000 con 35 ceros finales) puede producir un desplazamiento mayor de lo que acepta memremap_pages(), lo que activa una ADVERTENCIA y devuelve -EINVAL: ADVERTENCIA: ... memremap_pages+0x512/0x650 tamaño de folio solicitado no compatible La verificación de MAX_FOLIO_ORDER fue añadida por el commit 646b67d57589 (’mm/memremap: rechazar tamaños de folio/página compuesta irrazonables en memremap_pages()’). Solucione esto limitando vmemmap_shift a MAX_FOLIO_ORDER para que siempre solicitemos el orden más grande que el kernel soporta, en esos casos, en lugar de un valor fuera de rango. También corrija la ruta de error para propagar el código de error real de devm_memremap_pages() en lugar de codificar -EFAULT, lo que estaba enmascarando el retorno real de -EINVAL.

Information

Published : 2026-05-08 14:16

Updated : 2026-11-11 20:10


NVD link : CVE-2026-43348

Mitre link : CVE-2026-43348

CVE.ORG link : CVE-2026-43348


JSON object : View

Products Affected

linux

  • linux_kernel