CVE-2023-54079 in Linux
Сводка
по VulDB • 15.07.2026
В ядре Linux устранена следующая уязвимость:
power: supply: bq27xxx: Исправлена обработка poll_interval и гонки (race conditions) при удалении драйвера
До применения этого патча функция bq27xxx_battery_teardown() устанавливала значение poll_interval = 0, чтобы предотвратить повторную постановку в очередь элемента delayed_work функцией bq27xxx_battery_update().
При таком подходе существуют две проблемы:
1. Если драйвер отвязывается через sysfs вместо удаления модуля командой rmmod, это приводит к неожиданному изменению значения poll_interval. 2. Это условие гонки (race condition): после установки poll_interval его значение может быть изменено до того, как bq27xxx_battery_update() проверит его через /sys/module/bq27xxx_battery/parameters/poll_interval.
Для исправления этой ситуации в структуру struct bq27xxx_device_info добавлен атрибут removed, который используется вместо присваивания poll_interval значения 0.
Кроме того, существует еще одна гонка (race condition), связанная с poll_interval при выполнении операции remove(): запись в /sys/module/bq27xxx_battery/parameters/poll_interval приводит к повторной постановке в очередь элемента delayed_work для всех устройств в списке bq27xxx_battery_devices, а устройство удалялось из этого списка только после отмены работы элемента delayed_work.
Для исправления этой ситуации перемещено удаление устройства из списка bq27xxx_battery_devices на этап перед отменой работы элемента delayed_work.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.