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.
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
d71fda01610269e3aaedd451f8d3e34cdf550036 to < 1321a4e6247164312eabc6d07f88572da2ee308caffectedd71fda01610269e3aaedd451f8d3e34cdf550036 to < dc1dc2837f8e53bde2f16d52a63f4142e21757f1affectedd71fda01610269e3aaedd451f8d3e34cdf550036 to < 035cc6bc4d412dd4302862e8f859b784fcd4653baffectedd71fda01610269e3aaedd451f8d3e34cdf550036 to < 6f0ce09d60a0e4fab6f9ebe8294750481f0c19ddaffectedd71fda01610269e3aaedd451f8d3e34cdf550036 to < 80d4e40a85ba524e66c8c748aa7bb19eaf2f69dfaffectedd71fda01610269e3aaedd451f8d3e34cdf550036 to < ab6b1ad710bed7931540733ce145493fece8ceefaffectedd71fda01610269e3aaedd451f8d3e34cdf550036 to < 6ab3128292df67295de1b2a86f21d89cf6612a7eaffectedd71fda01610269e3aaedd451f8d3e34cdf550036 to < ceb6ac43b0f591722401922ceb958ce2616935e0affected
Linux Linux
Default version status: affected
3.7affected0 to < 3.7unaffected5.10.270 to ≤ 5.10.*unaffected5.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/1321a4e6247164312eabc6d07f88572da2ee308c ↗
- https://git.kernel.org/stable/c/dc1dc2837f8e53bde2f16d52a63f4142e21757f1 ↗
- https://git.kernel.org/stable/c/035cc6bc4d412dd4302862e8f859b784fcd4653b ↗
- https://git.kernel.org/stable/c/6f0ce09d60a0e4fab6f9ebe8294750481f0c19dd ↗
- https://git.kernel.org/stable/c/80d4e40a85ba524e66c8c748aa7bb19eaf2f69df ↗
- https://git.kernel.org/stable/c/ab6b1ad710bed7931540733ce145493fece8ceef ↗
- https://git.kernel.org/stable/c/6ab3128292df67295de1b2a86f21d89cf6612a7e ↗
- https://git.kernel.org/stable/c/ceb6ac43b0f591722401922ceb958ce2616935e0 ↗