Description
In the Linux kernel, the following vulnerability has been resolved: power: supply: bq27xxx: Fix poll_interval handling and races on remove Before this patch bq27xxx_battery_teardown() was setting poll_interval = 0 to avoid bq27xxx_battery_update() requeuing the delayed_work item. There are 2 problems with this: 1. If the driver is unbound through sysfs, rather then the module being rmmod-ed, this changes poll_interval unexpectedly 2. This is racy, after it being set poll_interval could be changed before bq27xxx_battery_update() checks it through /sys/module/bq27xxx_battery/parameters/poll_interval Fix this by added a removed attribute to struct bq27xxx_device_info and using that instead of setting poll_interval to 0. There also is another poll_interval related race on remove(), writing /sys/module/bq27xxx_battery/parameters/poll_interval will requeue the delayed_work item for all devices on the bq27xxx_battery_devices list and the device being removed was only removed from that list after cancelling the delayed_work item. Fix this by moving the removal from the bq27xxx_battery_devices list to before cancelling the delayed_work item.
Product status
8cfaaa811894a3ae2d7360a15a6cfccff3ebc7db (git) before 4c9615474fb0a41cfad658d78db3c9ec70912969
8cfaaa811894a3ae2d7360a15a6cfccff3ebc7db (git) before 465d919151a1e8d40daf366b868914f59d073211
8cfaaa811894a3ae2d7360a15a6cfccff3ebc7db (git) before 0c5f4cec759679c290720fbcf6bb81768e21c95b
8cfaaa811894a3ae2d7360a15a6cfccff3ebc7db (git) before e85757da9091998276ff21a13915ac25229cc232
8cfaaa811894a3ae2d7360a15a6cfccff3ebc7db (git) before e98e5bebfcafc75a7b41192a607dfea5c1268afa
8cfaaa811894a3ae2d7360a15a6cfccff3ebc7db (git) before d952a1eaafcc5f0351caad5dbe9b5b3300d1d529
8cfaaa811894a3ae2d7360a15a6cfccff3ebc7db (git) before b12faeca0e819ea09051a705fef9df7ea7e9e18c
8cfaaa811894a3ae2d7360a15a6cfccff3ebc7db (git) before c00bc80462afc7963f449d7f21d896d2f629cacc
3.3
Any version before 3.3
4.14.316 (semver)
4.19.284 (semver)
5.4.244 (semver)
5.10.181 (semver)
5.15.114 (semver)
6.1.31 (semver)
6.3.5 (semver)
6.4 (original_commit_for_fix)
References
git.kernel.org/...c/4c9615474fb0a41cfad658d78db3c9ec70912969
git.kernel.org/...c/465d919151a1e8d40daf366b868914f59d073211
git.kernel.org/...c/0c5f4cec759679c290720fbcf6bb81768e21c95b
git.kernel.org/...c/e85757da9091998276ff21a13915ac25229cc232
git.kernel.org/...c/e98e5bebfcafc75a7b41192a607dfea5c1268afa
git.kernel.org/...c/d952a1eaafcc5f0351caad5dbe9b5b3300d1d529
git.kernel.org/...c/b12faeca0e819ea09051a705fef9df7ea7e9e18c
git.kernel.org/...c/c00bc80462afc7963f449d7f21d896d2f629cacc
Data based on CVE®. Copyright © 1999-2025, The MITRE Corporation. All rights reserved.