Description (CNA)
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 (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected d71fda01610269e3aaedd451f8d3e34cdf550036 before 1321a4e6247164312eabc6d07f88572da2ee308c; affected d71fda01610269e3aaedd451f8d3e34cdf550036 before dc1dc2837f8e53bde2f16d52a63f4142e21757f1; affected d71fda01610269e3aaedd451f8d3e34cdf550036 before 035cc6bc4d412dd4302862e8f859b784fcd4653b; affected d71fda01610269e3aaedd451f8d3e34cdf550036 before 6f0ce09d60a0e4fab6f9ebe8294750481f0c19dd; affected d71fda01610269e3aaedd451f8d3e34cdf550036 before 80d4e40a85ba524e66c8c748aa7bb19eaf2f69df; affected d71fda01610269e3aaedd451f8d3e34cdf550036 before ab6b1ad710bed7931540733ce145493fece8ceef; affected d71fda01610269e3aaedd451f8d3e34cdf550036 before 6ab3128292df67295de1b2a86f21d89cf6612a7e; affected d71fda01610269e3aaedd451f8d3e34cdf550036 before ceb6ac43b0f591722401922ceb958ce2616935e0 |
| Linux / Linux | affected 3.7; unaffected 0 before 3.7; unaffected 5.10.270 through 5.10.*; unaffected 5.15.221 through 5.15.*; unaffected 6.1.188 through 6.1.*; unaffected 6.6.157 through 6.6.*; unaffected 6.12.109 through 6.12.*; unaffected 6.18.50 through 6.18.*; unaffected 7.2.4 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
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