В ядре Linux устранена следующая уязвимость:
power: Supply: lp8727: исправить использование после освобождения в lp8727_release_irq()
lp8727_isr_func(), поточный обработчик IRQ, является единственным вызывающим объектом, который активирует
pchg->работаем через Schedule_delayed_work(). lp8727_release_irq() в настоящее время
отменяет работу до освобождения IRQ, поэтому IRQ доставляется между
можно перезапустить работу через резьбовой обработчик. После того, как .remove возвращается
уровень devm освобождает pchg, в то время как lp8727_delayed_func() все еще может работать и
разыменовать его. Сначала освободите IRQ, чтобы потоковой обработчик был остановлен и больше не мог
работу в очереди, затем отмените отложенную работу, чтобы слить последнее поколение.
Эта проблема была обнаружена с помощью собственного инструмента статического анализа.
Показать оригинальное описание (EN)
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.
Характеристики атаки
Последствия
Строка CVSS v3.1