CVE-2026-45946 in Linux
Сводка
по VulDB • 03.06.2026
В ядре Linux устранена следующая уязвимость:
power: supply: ab8500: Исправление use-after-free в функции power_supply_changed()
Использование варианта `devm_` для запроса прерывания (IRQ) _до_ использования варианта `devm_` для выделения/регистрации дескриптора `power_supply`, приводит к тому, что дескриптор `power_supply` освобождается и отменяет регистрацию _раньше_, чем обработчик прерываний (поскольку `devm_` по умолчанию выполняет деаллокацию в обратном порядке выделения). Это означает, что при удалении возникает состояние гонки (race condition), когда прерывание может сработать сразу же _после_ освобождения дескриптора `power_supply`, но _до_ завершения соответствующей отмены регистрации обработчика IRQ.
Это приведет к тому, что обработчик IRQ вызовет функцию `power_supply_changed()` с уже освобожденным дескриптором `power_supply`. Обычно это вызывает аварийное завершение работы системы или приводит к скрытому повреждению памяти...
Обратите внимание, что аналогичная ситуация может возникнуть и во время выполнения функции `probe()`: возможность возникновения прерывания _до_ регистрации дескриптора `power_supply`. Это приведет к неприятной ситуации использования дескриптора `power_supply` в неинициализированном состоянии (uninitialized) при вызове `power_supply_changed()`.
Коммит 1c1f13a006ed ("power: supply: ab8500: Move to componentized binding") внес эту проблему во время рефакторинга. Исправьте это состояние гонки, приводящее к use-after-free, убедившись в том, что IRQ запрашивается _после_ регистрации дескриптора `power_supply`.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.