High severity · published Sep 11, 2026
CVE-2026-89465
power: supply: rt9455: quiesce delayed work before teardown
8.4
CVSS
0.1%
EPSS
No
On KEV
Description
In the Linux kernel, the following vulnerability has been resolved:
power: supply: rt9455: quiesce delayed work before teardown
The threaded IRQ handler can queue pwr_rdy_work,
max_charging_time_work and batt_presence_work. pwr_rdy_work and
batt_presence_work can also queue max_charging_time_work, while
batt_presence_work can requeue itself.
rt9455_remove() cancels max_charging_time_work before
batt_presence_work. The latter can therefore queue
max_charging_time_work after it has already been cancelled:
rt9455_remove() workqueue
cancel pwr_rdy_work
cancel max_charging_time_work
batt_presence_work queues
max_charging_time_work
cancel batt_presence_work
return
devres frees rt9455_info
max_charging_time_work dereferences
rt9455_info
The IRQ also remains registered until devres cleanup and can queue more
work after any of the cancellation calls. If rt9455_hw_init() fails
after the IRQ has been requested, probe returns without cancelling work
that may already have been queued. A pending callback can then access
rt9455_info after it has been freed.
Register rt9455_cancel_all_delayed_works() through
devm_add_action_or_reset() right after devm_power_supply_register().
devres invokes the action in reverse registration order, after the
managed IRQ has been freed and before rt9455_info is released, so the
delayed works are drained in both rt9455_remove() and the probe error
path. Cancel pwr_rdy_work and batt_presence_work before
max_charging_time_work because both can queue the latter.
This issue was found by an in-house static analysis tool.
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Attack vector
Local
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.1% · higher than 3% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
LI
Linux · Linux
e86d69dd786e94046b8f5be7df1b9a8226a40b2a before 442c60c08ec23ac45da0a58877cab05e0a58f4ea; e86d69dd786e94046b8f5be7df1b9a8226a40b2a before df67c7a2fff8414aa766b8cd5ffe11ec1ca27d02; e86d69dd786e94046b8f5be7df1b9a8226a40b2a before 1b9978433c61a9b46e48832a1ebceee1cf5c9eb4; e86d69dd786e94046b8f5be7df1b9a8226a40b2a before 7323e562f6961e4b7bce3225cde4ecbc78260deb; e86d69dd786e94046b8f5be7df1b9a8226a40b2a before 3e7a1ebc32fad5a558254a478efd401c17a24381; 4.2 · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-89465
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-89465
git.kernel.org
https://git.kernel.org/stable/c/1b9978433c61a9b46e48832a1ebceee1cf5c9eb4
git.kernel.org
https://git.kernel.org/stable/c/3e7a1ebc32fad5a558254a478efd401c17a24381
git.kernel.org
https://git.kernel.org/stable/c/442c60c08ec23ac45da0a58877cab05e0a58f4ea
git.kernel.org
https://git.kernel.org/stable/c/7323e562f6961e4b7bce3225cde4ecbc78260deb
git.kernel.org
https://git.kernel.org/stable/c/df67c7a2fff8414aa766b8cd5ffe11ec1ca27d02
More from Linux
9.8
CVE-2025-39682
tls: fix handling of zero-length records on the rx_list
8.8
CVE-2026-53266
netfilter: bridge: make ebt_snat ARP rewrite writable
7.8
CVE-2026-53362
ipv6: account for fraggap on the paged allocation path
7.8
CVE-2026-46300
net: skbuff: preserve shared-frag marker during coalescing
7.8
CVE-2026-31431
crypto: algif_aead - Revert to operating out-of-place
