CVE-2026-89465

CVE-2026-89465

High · published September 12, 2026

CVSS v3.1
8.4
EPSS
0%
Percentile
3.2
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
8.4 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00142 · 3.2th percentile
Published
2026-09-12T00:19Z
References (5)
EPSS history
Timeline
  • 13 SEP 03:23Z
    EPSS moved — → 0%
    epss
  • 11 SEP 19:43Z
    power: supply: rt9455: quiesce delayed work before teardown
    cvelistv5