CVE-2023-54167

Summary

In the Linux kernel, the following vulnerability has been resolved:

m68k: mm: Move initrd phys_to_virt handling after paging_init()

When booting with an initial ramdisk on platforms where physical memory does not start at address zero (e.g. on Amiga):

initrd: 0ef0602c - 0f800000
Zone ranges:
  DMA      [mem 0x0000000008000000-0x000000f7ffffffff]
  Normal   empty
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x0000000008000000-0x000000000f7fffff]
Initmem setup node 0 [mem 0x0000000008000000-0x000000000f7fffff]
Unable to handle kernel access at virtual address (ptrval)
Oops: 00000000
Modules linked in:
PC: [<00201d3c>] memcmp+0x28/0x56

As phys_to_virt() relies on m68k_memoffset and module_fixup(), it must not be called before paging_init(). Hence postpone the phys_to_virt handling for the initial ramdisk until after calling paging_init().

While at it, reduce #ifdef clutter by using IS_ENABLED() instead.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux376e3fdecb0dcae216c0ac559cff066f460bf47b < ceb089e2337f810d3594d310953d9af4783f660aaffected
LinuxLinux376e3fdecb0dcae216c0ac559cff066f460bf47b < 58662cfb459150b9c0c22d20cddaea439b3844bdaffected
LinuxLinux376e3fdecb0dcae216c0ac559cff066f460bf47b < d4b97925e87eb133e400fe4a482d750c74ce392faffected
LinuxLinux5.17affected
LinuxLinux0 < 5.17unaffected
LinuxLinux6.1.20 <= 6.1.*unaffected
LinuxLinux6.2.7 <= 6.2.*unaffected
LinuxLinux6.3 <= *unaffected

Weaknesses

References