Description
In the Linux kernel, the following vulnerability has been resolved: power: supply: bq256xx: drain usb_work before freeing the charger The USB-PHY notifier queues usb_work, whose handler calls power_supply_changed(bq->charger). The reset devm action only unregisters the notifier and was registered before the power supplies, so devm frees bq->charger on unwind before the action runs; a usb_work still queued can then dereference it. Register the reset action after the power supplies, so it unregisters the notifiers and drains usb_work before the supplies are released. Initialize usb_work and obtain the PHY references before registering the notifiers, so the worker cannot run before the supplies exist. Found by static analysis.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
32e4978bb920d047fe5de3ea42d176f267c01f63 to < 9dcfdf6c598301b278f0b3490eb2bf4f600524e2affected32e4978bb920d047fe5de3ea42d176f267c01f63 to < fd08d4dbbec07a44f01b0ddb041912be0dc88f8caffected32e4978bb920d047fe5de3ea42d176f267c01f63 to < 2cfb59dc9df8b5ebdd95e3d874a7f4690cee2bc8affected32e4978bb920d047fe5de3ea42d176f267c01f63 to < 9a467bd1e6811011026ad4c8de701b940d88a00caffected32e4978bb920d047fe5de3ea42d176f267c01f63 to < 9e1aba34df9a87d53460888e05718717c0f69343affected32e4978bb920d047fe5de3ea42d176f267c01f63 to < c8addb842ae8dcf69c15fc976e33e3bd538a41d7affected32e4978bb920d047fe5de3ea42d176f267c01f63 to < 2dd6cd823777bea6d9a880a12a92a73ec76aee0baffected
Linux Linux
Default version status: affected
5.12affected0 to < 5.12unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.109 to ≤ 6.12.*unaffected6.18.50 to ≤ 6.18.*unaffected7.2.4 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/9dcfdf6c598301b278f0b3490eb2bf4f600524e2 ↗
- https://git.kernel.org/stable/c/fd08d4dbbec07a44f01b0ddb041912be0dc88f8c ↗
- https://git.kernel.org/stable/c/2cfb59dc9df8b5ebdd95e3d874a7f4690cee2bc8 ↗
- https://git.kernel.org/stable/c/9a467bd1e6811011026ad4c8de701b940d88a00c ↗
- https://git.kernel.org/stable/c/9e1aba34df9a87d53460888e05718717c0f69343 ↗
- https://git.kernel.org/stable/c/c8addb842ae8dcf69c15fc976e33e3bd538a41d7 ↗
- https://git.kernel.org/stable/c/2dd6cd823777bea6d9a880a12a92a73ec76aee0b ↗