In the Linux kernel, the following vulnerability has been resolved:
x86/mm: Check return value from memblock_phys_alloc_range()
At least with CONFIG_PHYSICAL_START=0x100000, if there is < 4 MiB of contiguous free memory available at this point, the kernel will crash and burn because memblock_phys_alloc_range() returns 0 on failure, which leads memblock_phys_free() to throw the first 4 MiB of physical memory to the wolves.
At a minimum it should fail gracefully with a meaningful diagnostic, but in fact everything seems to work fine without the weird reserve allocation.
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | - | 6.1.141 |
| linux / linux_kernel | 6.2 | 6.6.93 |
| linux / linux_kernel | 6.7 | 6.12.31 |
| linux / linux_kernel | 6.13 | 6.14.9 |
| debian / debian_linux | 11.0 | 11.0.x |