KernelScan.io

HIGH Introduced in 3.7

power ReleaseIrq UAF

CVE-2026-89469

CVSS 8.4 / 10.0 NVD

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

KernelScan AI6.4MEDIUM

01

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.

02

Engine v0.6.0

Risk summary

A use-after-free in the LP8727 charger driver can be triggered during device removal when an interrupt re-arms delayed work after it has been cancelled but before the IRQ is freed. The freed device data is then dereferenced by the lingering work function. Exploitation requires root-level access to unbind the device or unload the module on hardware that has this specific charger IC, and depends on winning a narrow race window.

Affecteddrivers/power/supply/lp8727_charger.c (power supply)

Vulnerability analysis

During device removal, the LP8727 charger driver cancels pending delayed work before freeing the interrupt handler. If a hardware interrupt arrives in the window between these two steps, the threaded interrupt handler re-arms the delayed work. Once removal finishes and the device's private data structure is freed by the managed-resource layer, the still-pending work function runs and dereferences the freed memory. The fix reverses the cleanup order: the interrupt is freed first so the threaded handler can no longer queue new work, and then the delayed work is cancelled to drain any final generation. This vulnerability is reachable only on systems with the LP8727 charger IC present and requires privileged access to trigger device unbind or module unload.

03

BranchIntroducedFixed inPatch commit
5.103.75.10.2701321a4e62471
6.13.76.1.188035cc6bc4d41
6.63.76.6.1576f0ce09d60a0
7.23.77.2.46ab3128292df
6.123.76.12.10980d4e40a85ba
mainline3.77.3-rc1ceb6ac43b0f5
5.153.75.15.221dc1dc2837f8e
6.183.76.18.50ab6b1ad710be
cip/6.123.76.12.111-cip3280d4e40a85ba