CVE Catalog

CVE-2026-89464

Low risk· EPSS 6%
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.17%

6th percentile - higher than 6% of all known CVEs

Summary

In the Linux kernel, the twl4030_charger driver has a use-after-free. twl4030_bci_remove() does not cancel two workers (bci->work and bci->current_worker) that dereference the devm-allocated bci structure, potentially accessing freed memory after device removal.

Risk Assessment

Can cause kernel memory corruption, system instability, or potential privilege escalation.

Recommendation

Update the Linux kernel to a version with the fix using devm_work_autocancel() and devm_delayed_work_autocancel() to cancel workers during devm release.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: power: supply: twl4030_charger: cancel workers via devm bci is devm-allocated. Two workers (bci->work and bci->current_worker) dereference it. twl4030_bci_remove() disables charging and masks interrupts. It cancels neither worker. A worker pending at remove() can run after devm frees bci. The USB transceiver comes from devm_usb_get_phy_by_node(). devm unregisters its notifier only after remove() returns. A cancel_work_sync() in remove() can then race a notifier reschedule. devm_work_autocancel() and devm_delayed_work_autocancel() avoid that. They cancel the workers during devm release, before bci is freed. The current_worker is registered first, since devm will cancel in reverse order and bci->work can reschedule current_worker. [Move comment about order into the commit message]

Vulnerability data from NVD (NIST) · CISA KEV · EPSS