Skip to main content
← All vulnerabilities
CVE-2026-89474

power: supply: bq256xx: drain usb_work before freeing the charger

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50, and 1 more
None on Exploit-DB, Metasploit or GitHub

Summary

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.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 32e4978bb920d047fe5de3ea42d176f267c01f63 · fixed in 9dcfdf6c598301b278f0b3490eb2bf4f600524e2; From 32e4978bb920d047fe5de3ea42d176f267c01f63 · fixed in fd08d4dbbec07a44f01b0ddb041912be0dc88f8c; From 32e4978bb920d047fe5de3ea42d176f267c01f63 · fixed in 2cfb59dc9df8b5ebdd95e3d874a7f4690cee2bc8; From 32e4978bb920d047fe5de3ea42d176f267c01f63 · fixed in 9a467bd1e6811011026ad4c8de701b940d88a00c; From 32e4978bb920d047fe5de3ea42d176f267c01f63 · fixed in 9e1aba34df9a87d53460888e05718717c0f69343; From 32e4978bb920d047fe5de3ea42d176f267c01f63 · fixed in c8addb842ae8dcf69c15fc976e33e3bd538a41d7; From 32e4978bb920d047fe5de3ea42d176f267c01f63 · fixed in 2dd6cd823777bea6d9a880a12a92a73ec76aee0b

  • Linux Linux

    5.12

  • KernelLinux

    From 5.12.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.109; From 6.13.0 · fixed in 6.18.50; From 6.19.0 · fixed in 7.2.4

References 7

git.kernel.org