CVE-2024-46698: video/aperture: optionally match the device in sysfb_disable()
In the Linux kernel, the following vulnerability has been resolved:
video/aperture: optionally match the device in sysfbdisable()
In apertureremoveconflictingpcidevices(), we currently only call sysfbdisable() on vga class devices. This leads to the following problem when the pimary device is not VGA compatible:
1. A PCI device with a non-VGA class is the boot display 2. That device is probed first and it is not a VGA device so sysfbdisable() is not called, but the device resources are freed by aperturedetachplatformdevice() 3. Non-primary GPU has a VGA class and it ends up calling sysfbdisable() 4. NULL pointer dereference via sysfbdisable() since the resources have already been freed by aperturedetachplatformdevice() when it was called by the other device.
Fix this by passing a device pointer to sysfbdisable() and checking the device to determine if we should execute it or not.
v2: Fix build when CONFIGSCREENINFO is not set v3: Move device check into the mutex Drop primary variable in apertureremoveconflictingpcidevices() Drop init on pci sysfbpcidevisenabled()
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2024-46698?
CVE-2024-46698 has a medium severity rating due to the potential for video output issues on affected Linux kernel versions.
How do I fix CVE-2024-46698?
To fix CVE-2024-46698, upgrade to a patched version of the Linux kernel such as 6.12.12-1 or later.
Which versions of the Linux kernel are affected by CVE-2024-46698?
CVE-2024-46698 affects Linux kernel versions from 6.5 up to 6.10.8 and specific release candidates of 6.11.
What components are impacted by CVE-2024-46698?
CVE-2024-46698 impacts the video aperture component of the Linux kernel.
Is there a workaround for CVE-2024-46698?
Currently, no specific workaround is recommended for CVE-2024-46698 other than upgrading to the fixed versions.