CVE-2024-46846 spi: rockchip: Resolve unbalanced runtime PM / system PM handling
A bug in the Rockchip SPI driver causes double clock disabling during system suspend, leading to kernel warnings and potential denial of service.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2024-46846?
CVE-2024-46846 is a medium-severity denial of service vulnerability in Linux kernel, published on 27 Sep 2024. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
In the Linux kernel, the following vulnerability has been resolved:
spi: rockchip: Resolve unbalanced runtime PM / system PM handling
Commit e882575efc77 ("spi: rockchip: Suspend and resume the bus during NOIRQ_SYSTEM_SLEEP_PM ops") stopped respecting runtime PM status and simply disabled clocks unconditionally when suspending the system. This causes problems when the device is already runtime suspended when we go to sleep -- in which case we double-disable clocks and produce a WARNing.
Switch back to pm_runtime_force_{suspend,resume}(), because that still seems like the right thing to do, and the aforementioned commit makes no explanation why it stopped using it.
Also, refactor some of the resume() error handling, because it's not actually a good idea to re-disable clocks on failure.
Which versions are affected by CVE-2024-46846?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2024-46846?
Apply the vendor's patch.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2024-46846 being exploited?
There is no known exploitation of CVE-2024-46846 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as BELL-CVE-2024-46846, DEBIAN-CVE-2024-46846, GHSA-7h72-pm8j-jj46, UBUNTU-CVE-2024-46846.