UBUNTU-CVE-2026-93237: High severity ubuntu/linux vulnerability
In the Linux kernel, the following vulnerability has been resolved: LoongArch: Add DIRECTMAPPHYSMEMEND definition getfreememregion() and mhpgetpluggablerange() bound their search to DIRECTMAPPHYSMEMEND. LoongArch does not define it, so the fallback in include/linux/mm.h applies: under CONFIGSPARSEMEMVMEMMAP it is (1ULL << MAXPHYSMEMBITS) - 1, a compile-time constant that does not adapt to the CPU's physical address space bits (cpupabits, probed from CPUCFG1). The vmemmap window only covers physical space below 2^(cpupabits+1) (i.e. VMEMMAPSIZE), so on CPUs with fewer physical address bits than MAXPHYSMEMBITS the fallback allows getfreememregion() to return a ZONEDEVICE region outside the vmemmap window; vmemmappopulate() then wraps the memmap range around and maps it into low memory, silently corrupting the page tables. The same search also picked the top-of- address-space region that crashed memmapinitzonedevice() with amdkfd on Loongson-3C6000 in 6.16 [1]; the commit 2969b42c8f99 ("LoongArch/mm: align vmemmap to maximal folio size") keeps that region in bounds on current Loongson-3C6000 configs, but CPUs with smaller cpupabits (e.g. the Loongson-2K series) are still affected. Define DIRECTMAPPHYSMEMEND as the vmemmap-covered physical range, (1ULL << (cpupabits + 1)) - 1, capped at (1ULL << MAXPHYSMEMBITS) - 1 under CONFIGSPARSEMEM, similar to the commit f3336b48cf9d ("riscv: mm: Define DIRECTMAPPHYSMEMEND"). [1] https://lore.kernel.org/amd-gfx/20250814032153.227285-1-jeffbai@aosc.io/
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Configuration
Define DIRECT_MAP_PHYSMEM_END to limit get_free_mem_region() and mhp_get_pluggable_range() to the vmemmap-covered physical range based on the CPU's cpu_pabits.
Linux kernel LoongArch memory management DIRECT_MAP_PHYSMEM_END = (1ULL << (cpu_pabits + 1)) - 1, capped at (1ULL << MAX_PHYSMEM_BITS) - 1 under CONFIG_SPARSEMEM
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
The issue affects LoongArch systems using CONFIG_SPARSEMEM_VMEMMAP where the CPU physical-address width is smaller than MAX_PHYSMEM_BITS. CPUs with smaller cpu_pabits, including the Loongson-2K family mentioned in the advisory, are specifically at risk.
What condition triggers the corruption or crash?
A free-memory-region search must select a ZONE_DEVICE region beyond the vmemmap window. That can cause vmemmap_populate() to wrap the memmap range and map it into low memory, silently corrupting page tables; selecting the top address-space region can also crash memmap_init_zone_device().
Does the previously mentioned Loongson-3C6000 alignment change fully resolve the issue?
No. The cited alignment change keeps the relevant region in bounds for current Loongson-3C6000 configurations, but the advisory states that CPUs with smaller cpu_pabits remain affected.