CVE-2026-45906
HighCVSS 7.8Exploitation Probability (EPSS)
Low risk5th percentile - higher than 5% of all known CVEs
Summary
A vulnerability has been identified in the Linux kernel related to use-after-free in the `power_supply_changed()` function. The issue occurs when the interrupt handler is registered before the `power_supply` handle is registered, leading to a race condition where an interrupt can call the function with a freed handle.
Risk Assessment
This vulnerability can lead to system crashes or silent memory corruption, posing a significant risk to the stability and security of the operating system.
Recommendation
It is recommended to update the Linux kernel to ensure that the IRQ request occurs after the registration of the `power_supply` handle, eliminating the race condition risk.
Original NVD description (English source)
In the Linux kernel, the following vulnerability has been resolved: power: supply: pf1550: Fix use-after-free in power_supply_changed() Using the `devm_` variant for requesting IRQ _before_ the `devm_` variant for allocating/registering the `power_supply` handle, means that the `power_supply` handle will be deallocated/unregistered _before_ the interrupt handler (since `devm_` naturally deallocates in reverse allocation order). This means that during removal, there is a race condition where an interrupt can fire just _after_ the `power_supply` handle has been freed, *but* just _before_ the corresponding unregistration of the IRQ handler has run. This will lead to the IRQ handler calling `power_supply_changed()` with a freed `power_supply` handle. Which usually crashes the system or otherwise silently corrupts the memory... Note that there is a similar situation which can also happen during `probe()`; the possibility of an interrupt firing _before_ registering the `power_supply` handle. This would then lead to the nasty situation of using the `power_supply` handle *uninitialized* in `power_supply_changed()`. Fix this racy use-after-free by making sure the IRQ is requested _after_ the registration of the `power_supply` handle.

