CVE-2022-49666
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
26/02/2025
Last modified:
26/02/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
powerpc/memhotplug: Add add_pages override for PPC<br />
<br />
With commit ffa0b64e3be5 ("powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit")<br />
the kernel now validate the addr against high_memory value. This results<br />
in the below BUG_ON with dax pfns.<br />
<br />
[ 635.798741][T26531] kernel BUG at mm/page_alloc.c:5521!<br />
1:mon> e<br />
cpu 0x1: Vector: 700 (Program Check) at [c000000007287630]<br />
pc: c00000000055ed48: free_pages.part.0+0x48/0x110<br />
lr: c00000000053ca70: tlb_finish_mmu+0x80/0xd0<br />
sp: c0000000072878d0<br />
msr: 800000000282b033<br />
current = 0xc00000000afabe00<br />
paca = 0xc00000037ffff300 irqmask: 0x03 irq_happened: 0x05<br />
pid = 26531, comm = 50-landscape-sy<br />
kernel BUG at :5521!<br />
Linux version 5.19.0-rc3-14659-g4ec05be7c2e1 (kvaneesh@ltc-boston8) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #625 SMP Thu Jun 23 00:35:43 CDT 2022<br />
1:mon> t<br />
[link register ] c00000000053ca70 tlb_finish_mmu+0x80/0xd0<br />
[c0000000072878d0] c00000000053ca54 tlb_finish_mmu+0x64/0xd0 (unreliable)<br />
[c000000007287900] c000000000539424 exit_mmap+0xe4/0x2a0<br />
[c0000000072879e0] c00000000019fc1c mmput+0xcc/0x210<br />
[c000000007287a20] c000000000629230 begin_new_exec+0x5e0/0xf40<br />
[c000000007287ae0] c00000000070b3cc load_elf_binary+0x3ac/0x1e00<br />
[c000000007287c10] c000000000627af0 bprm_execve+0x3b0/0xaf0<br />
[c000000007287cd0] c000000000628414 do_execveat_common.isra.0+0x1e4/0x310<br />
[c000000007287d80] c00000000062858c sys_execve+0x4c/0x60<br />
[c000000007287db0] c00000000002c1b0 system_call_exception+0x160/0x2c0<br />
[c000000007287e10] c00000000000c53c system_call_common+0xec/0x250<br />
<br />
The fix is to make sure we update high_memory on memory hotplug.<br />
This is similar to what x86 does in commit 3072e413e305 ("mm/memory_hotplug: introduce add_pages")