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
5.153.75.15.221dc1dc2837f8e
6.13.76.1.188035cc6bc4d41
6.123.76.12.10980d4e40a85ba
6.183.76.18.50ab6b1ad710be
6.63.76.6.1576f0ce09d60a0
7.23.77.2.46ab3128292df
mainline3.77.3ceb6ac43b0f5
cip/5.103.75.10.271-cip781321a4e62471
cip/6.13.76.1.189-cip61035cc6bc4d41
cip/6.1-rt3.76.1.189-cip61-rt32035cc6bc4d41
cip/6.123.76.12.111-cip3280d4e40a85ba

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.271-cip78
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)
cip/4.4Affected — no CIP fix yet (latest 4.4.302-cip115)
cip/4.4-rtAffected — no CIP fix yet (latest 4.4.302-cip115-rt63)