CVE-2022-49070 Information
Description
In the Linux kernel the following vulnerability has been resolved:
fbdev: Fix unregistering of framebuffers without device
OF framebuffers do not have an underlying device in the Linux device hierarchy. Do a regular unregister call instead of hot unplugging such a non-existing device. Fixes a NULL dereference. An example error message on ppc64le is shown below.
BUG: Kernel NULL pointer dereference on read at 0x00000060
Faulting instruction address: 0xc00000000080dfa4
Oops: Kernel access of bad area sig: 11 [1]
LE PAGE_SIZE=64K MMU=Hash SMP NR_CPUS=2048 NUMA pSeries
[…]
CPU: 2 PID: 139 Comm: systemd-udevd Not tainted 5.17.0-ae085d7f9365 1
NIP: c00000000080dfa4 LR: c00000000080df9c CTR: c000000000797430
REGS: c000000004132fe0 TRAP: 0300 Not tainted (5.17.0-ae085d7f9365)
MSR: 8000000002009033
The bug [1] was introduced by commit 27599aacbaef (bdev: Hot-unplug firmware fb devices on forced removal). Most firmware framebuffers have an underlying platform device which can be hot-unplugged before loading the native graphics driver. OF framebuffers do not (yet) have that device. Fix the code by unregistering the framebuffer as before without a hot unplug.
Tested with 5.17 on qemu ppc64le emulation.
Reference
https://git.kernel.org/stable/c/0f525289ff0ddeb380813bd81e0f9bdaaa1c9078 https://git.kernel.org/stable/c/2388f826cdc9af2651991adc0feb79de9bdf2232 https://git.kernel.org/stable/c/de33df481545974ba47c46f05194e769e4307843 https://git.kernel.org/stable/c/feed87ff122b1640c221d4dd559442ab2cd50bb1
Share on: