CVE-2026-64595 in Linux
Sumário
de VulDB • 06/08/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
HID: hid-lenovo-go: cancelar o trabalho cfg_setup em hid_go_cfg_remove()
hid_go_cfg_probe() inicializa drvdata.go_cfg_setup e agenda sua execução para 2 ms depois:
INIT_DELAYED_WORK(&drvdata.go_cfg_setup, &cfg_setup); schedule_delayed_work(&drvdata.go_cfg_setup, msecs_to_jiffies(2));
cfg_setup() faz dereference de drvdata.hdev para emitir solicitações de comandos MCU. hid_go_cfg_remove() desmonta o sysfs e interrompe o dispositivo HID, mas nunca esvazia (drains) o trabalho atrasado. Se o dispositivo for desvinculado dentro do intervalo de agendamento de 2 ms (um rollback de falha no probe via remove, ou um rmmod rápido após o probe), o trabalho é executado depois que hid_destroy_device() liberou sua referência e descartou a estrutura hdev subjacente, deixando cfg_setup() com um ponteiro stale para drvdata.hdev.
Espelhe o driver irmão hid-lenovo-go-s.c, cujo hid_gos_cfg_remove() já chama cancel_delayed_work_sync() em seu trabalho análogo, e esvazie go_cfg_setup no início de hid_go_cfg_remove(). O cancelamento deve ocorrer antes do guard(mutex)(&drvdata.cfg_mutex), pois cfg_setup() adquire esse mutex; inverter a ordem causaria um deadlock.
If you want to get best quality of vulnerability data, you may have to visit VulDB.