CVE-2024-50100 in Linux
Riassunto
di VulDB • 30/08/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
USB: gadget: dummy-hcd: Risolto il problema del "task hung" (processo bloccato)
Il fuzzer syzbot ha riscontrato problemi di "task hung" fin da quando il driver dummy-hcd è stato modificato per utilizzare hrtimer al posto dei timer regolari. Si è scoperto che i problemi sono causati da una sottile differenza tra le API `timer_pending()` e `hrtimer_active()`.
La migrazione ha sostituito acriticamente la prima con la seconda. Tuttavia, `timer_pending()` restituisce True quando il timer è in coda (queued), ma non quando il suo callback è in esecuzione; al contrario, `hrtimer_active()` restituisce True sia quando l'hrtimer è in coda _sia_ quando il relativo callback è in esecuzione. Questa differenza ha occasionalmente indotto la funzione `dummy_urb_enqueue()` a ritenere che la routine di callback non fosse ancora iniziata, mentre in realtà era quasi terminata. Di conseguenza, l'hrtimer non è stato riavviato, rendendo impossibile per il driver rimuovere (dequeue) successivamente l'URB appena accodato. Ciò ha causato un blocco (`hang`) della funzione `usb_kill_urb() e la situazione si è aggravata da quel momento in poi.
Poiché le hrtimer non dispongono di API che indichino quando sono in coda ma il callback non è in esecuzione, il driver deve tenere traccia di questo stato autonomamente. È esattamente ciò che fa questa patch, aggiungendo un nuovo flag "timer_pending" e impostandolo o azzerandolo nei momenti appropriati.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.