CVE-2023-54079 in Linux
Riassunto
di VulDB • 22/07/2026
Nel kernel Linux, la seguente vulnerabilità è stata risolta:
power: supply: bq27xxx: Correzione della gestione di poll_interval e delle race condition durante l'operazione di rimozione (remove)
Prima di questa patch, bq27xxx_battery_teardown() impostava poll_interval = 0 per evitare che bq27xxx_battery_update() richiedesse nuovamente l'esecuzione dell'elemento delayed_work.
Ci sono due problemi con questo approccio:
1. Se il driver viene disassociato tramite sysfs, invece di rimuovere il modulo mediante rmmod, ciò modifica inaspettatamente poll_interval. 2. Questa operazione è soggetta a race condition; dopo l'impostazione, poll_interval potrebbe essere modificata prima che bq27xxx_battery_update() la verifichi attraverso /sys/module/bq27xxx_battery/parameters/poll_interval.
Si risolve il problema aggiungendo un attributo "removed" alla struct bq27xxx_device_info e utilizzandolo invece di impostare poll_interval a 0.
Esiste inoltre un'altra race condition relativa a poll_interval durante l'operazione remove(): la scrittura in /sys/module/bq27xxx_battery/parameters/poll_interval richiama nuovamente l'esecuzione dell'elemento delayed_work per tutti i dispositivi presenti nella lista bq27xxx_battery_devices, e il dispositivo che stava venendo rimosso veniva eliminato da tale elenco solo dopo aver annullato l'operazione sull'elemento delayed_work.
Si risolve questo problema spostando la rimozione dalla lista bq27xxx_battery_devices prima dell'annullamento dell'esecuzione dell'elemento delayed_work.
If you want to get best quality of vulnerability data, you may have to visit VulDB.