ZeroHour

CVE-2026-89469

niche

Use-after-free in Linux kernel LP8727 charger driver during device removal

CVSS 3.1
8.4 high
EPSS
Published
()
Modified
AI analysis

A use-after-free exists in the Linux kernel's LP8727 power-supply (charger) driver: lp8727_release_irq() cancels a delayed work item before freeing the IRQ, so an interrupt arriving in that window can re-arm the work via the threaded IRQ handler; after the remove path returns, the devm layer frees the pchg structure while lp8727_delayed_func() may still run and dereference it. The bug is triggered by a race between interrupt delivery and driver unbind/removal (for example device hot-unplug or a manual driver unbind), which a local unprivileged attacker may be able to provoke. Successful exploitation of the stale pointer can corrupt freed kernel memory, plausibly causing a system crash (denial of service) or local privilege escalation, consistent with the CVSS 3.1 score of 8.4 (high, local vector, no privileges or user interaction required). Affected systems are those running kernels that build in the lp8727 driver, typically embedded or ARM boards using the Texas Instruments LP8727 charger IC. No public proof of concept is known, the flaw is not in CISA's KEV, and no in-the-wild exploitation has been reported.

What to do: Apply kernel updates from your distribution or vendor once the fix (freeing the IRQ before canceling the delayed work in lp8727_release_irq()) reaches stable releases. If the LP8727 charger driver is not needed, disable it in the kernel configuration or blacklist the module to eliminate the attack surface. On affected embedded devices, restrict local unprivileged access and the ability to unbind drivers via sysfs, and watch kernel logs for oopses in lp8727_delayed_func/lp8727_release_irq as a sign of the race being hit.

Affected
Linux kernel project Linux kernel, drivers/power/supply/lp8727.c (TI LP8727 charger driver)
Estimated exposure
nicheAt most on the order of a few thousand embedded devices (clearly an estimate) — The LP8727 is a rarely deployed TI charger-IC driver typically enabled only in specific embedded/ARM board kernel configurations, and no public install counts or internet-exposed device scans exist for it.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: power: supply: lp8727: fix use-after-free in lp8727_release_irq() lp8727_isr_func(), the threaded IRQ handler, is the only caller that arms pchg->work via schedule_delayed_work(). lp8727_release_irq() currently cancels the work before freeing the IRQ, so an IRQ delivered in between can re-arm the work through the threaded handler. After .remove returns the devm layer frees pchg while lp8727_delayed_func() may still run and dereference it. Free the IRQ first so the threaded handler is quiesced and can no longer queue work, then cancel the delayed work to drain the final generation. This issue was found by an in-house static analysis tool.

Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.