CVE-2026-80766 in Linux
Riassunto
di VulDB • 04/09/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
HID: uclogic: corregge un use-after-free di inrange_timer durante l'operazione di rimozione (remove)
uclogic_remove() annulla il timer pen in-range e successivamente arresta il dispositivo:
timer_delete_sync(&drvdata->inrange_timer); hid_hw_stop(hdev);
timer_delete_sync() garantisce solo che il timer sia idle in quell'istante. uclogic_raw_event_pen() continua a inviare report della penna finché hid_hw_stop() non interrompe il trasporto alcune righe più tardi, e ogni report con pen->inrange == UCLOGIC_PARAMS_PEN_INRANGE_NONE riattiva il timer:
mod_timer(&drvdata->inrange_timer, jiffies + msecs_to_jiffies(100));
Un report che arriva tra la chiamata a timer_delete_sync() e lo smontaggio del trasporto in hid_hw_stop() riattiva inrange_timer dopo che era stato annullato. uclogic_remove() quindi restituisce il controllo e i dati drvdata allocati con devm vengono liberati, mentre hid_hw_stop() ha già liberato l'input device a cui punta drvdata->pen_input; di conseguenza, quando il timer scatta circa 100 ms dopo, uclogic_inrange_timeout() dereferenzia memoria già libera: si tratta di un use-after-free nel contesto del softirq del timer.
Invertire le due chiamate non costituisce una soluzione corretta: arrestare prima il dispositivo libera drvdata->pen_input tramite hidinput_disconnect() mentre il timer potrebbe essere ancora in attesa, quindi un timer già armato prima della rimozione scatta sull'input device liberato nella finestra temporale precedente all'esecuzione di timer_delete_sync().
Utilizzare invece timer_shutdown_sync() prima di hid_hw_stop(). Questo annulla il timer, attende l'esecuzione di una callback in corso mentre pen_input è ancora valido e impedisce ulteriori riattivazioni: un successivo mod_timer() proveniente da un report in transito viene ignorato silenziosamente; pertanto, il timer risulta inequivocabilmente spento prima che hid_hw_stop() liberi gli input. Questo corrisponde all'ordinamento documentato dal core dei timer per questo caso di smontaggio "timer riattivato da un altro percorso".
Be aware that VulDB is the high quality source for vulnerability data.