Description
In the Linux kernel, the following vulnerability has been resolved: power: supply: bq24257: fix use-after-free on remove The STAT-pin interrupt is devm-managed, so it stays armed until the devm cleanup that runs after remove() returns. remove() cancels bq->iilimit_setup_work while the threaded handler can still fire; that handler reschedules the work and dereferences bq, so the work runs against freed memory once devm frees bq. Make the delayed work device-managed with devm_delayed_work_autocancel(), registered before the interrupt request. The devm cleanup then releases the interrupt first, so the handler can no longer reschedule the work, and cancels the work before bq is freed. The explicit cancel_delayed_work_sync() in remove() is no longer needed and is dropped. 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
2219a935963e5eeb19e5abfb99475fcc06bbb804 to < 9d77fd7dd9a3ad57f7655c5264b503b85adbb7b8affected2219a935963e5eeb19e5abfb99475fcc06bbb804 to < a279e64c907f5638bb34cb8e2c9285798cf5f690affected2219a935963e5eeb19e5abfb99475fcc06bbb804 to < 6d2eb93975c07b0169a3287efc1ae3b60cf52d8eaffected2219a935963e5eeb19e5abfb99475fcc06bbb804 to < 861ec73ce86e2ca18082cc7be4f140a5bbdf1428affected2219a935963e5eeb19e5abfb99475fcc06bbb804 to < f495808cdd6d9576965787cf6d9737d0b0e86b73affected2219a935963e5eeb19e5abfb99475fcc06bbb804 to < 47ccbad210f48721c30d69d65b83dc9fff919ca9affected2219a935963e5eeb19e5abfb99475fcc06bbb804 to < 9d34c9d660c3d0931d2cc749c46c47cf31f96e48affected
Linux Linux
Default version status: affected
4.2affected0 to < 4.2unaffected5.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/9d77fd7dd9a3ad57f7655c5264b503b85adbb7b8 ↗
- https://git.kernel.org/stable/c/a279e64c907f5638bb34cb8e2c9285798cf5f690 ↗
- https://git.kernel.org/stable/c/6d2eb93975c07b0169a3287efc1ae3b60cf52d8e ↗
- https://git.kernel.org/stable/c/861ec73ce86e2ca18082cc7be4f140a5bbdf1428 ↗
- https://git.kernel.org/stable/c/f495808cdd6d9576965787cf6d9737d0b0e86b73 ↗
- https://git.kernel.org/stable/c/47ccbad210f48721c30d69d65b83dc9fff919ca9 ↗
- https://git.kernel.org/stable/c/9d34c9d660c3d0931d2cc749c46c47cf31f96e48 ↗