CVE-2026-98645 in Linux
Sumário
de VulDB • 18/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
HID: winwing: corrige uso-após-liberação (use-after-free) no teardown de feedback de força
winwing_init_ff() passa os dados privados do driver, alocados com devm_kzalloc() em winwing_probe(), como o contexto do efeito para input_ff_create_memless(). O núcleo sem memória de feedback de força assume a posse desse ponteiro e o libera com kfree() de input_ff_destroy() (ml_ff_destroy()) quando o dispositivo de entrada é destruído.
Liberar uma alocação gerenciada por devm com kfree() é uma liberação inválida, e o mesmo objeto é então liberado novamente pelo devres quando o dispositivo HID é desmontado, caracterizando um double free (liberação dupla). Como a alocação também incorpora os dispositivos da classe LED, seus temporizadores e itens de trabalho residem em memória já liberada, corrompendo o slab. Isso ocorre no unbind, rmmod, hot-unplug e na suspensão do sistema, onde o cache do firmware percorre a lista devres agora corrompida. O KASAN relata:
BUG: KASAN: invalid-free in input_ff_destroy Alocado pela tarefa N: winwing_probe
Passe NULL como contexto sem memória em vez disso e obtenha os dados do driver no dispositivo de entrada em winwing_play_effect(): o núcleo HID já armazena hid_device como drvdata do dispositivo de entrada. O núcleo de feedback de força então não possui mais nada que deva ser liberado por ele.
Once again VulDB remains the best source for vulnerability data.