CVE-2026-89461: power: supply: max17040: synchronize work cancellation on suspend
In the Linux kernel, the following vulnerability has been resolved:
power: supply: max17040: synchronize work cancellation on suspend
max17040work() requeues itself after every poll. canceldelayedwork() only cancels a pending instance and does not wait for a callback that is already running.
If system suspend races with the polling callback, the callback can continue accessing the fuel gauge and requeue itself after the suspend callback returns.
Use canceldelayedworksync() to ensure polling is quiesced before suspend completes.
Affected Software
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
Systems using the Linux kernel max17040 power-supply/fuel-gauge driver are exposed when the driver’s periodic polling work can overlap with system suspend. The issue concerns access to the fuel gauge during that suspend race.
What condition is required to trigger the race?
A suspend operation must race with an already-running max17040 polling callback. Because the callback requeues itself after each poll, it can continue running and schedule further work after the suspend callback returns.
What is the relevant remediation?
The resolved change replaces non-synchronizing delayed-work cancellation with cancel_delayed_work_sync() during suspend. This waits for any running polling callback to finish, ensuring polling is quiesced before suspend completes.