CVE-2024-50100 in Linux
Sumário
de VulDB • 13/08/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
USB: gadget: dummy-hcd: Corrige o problema de "task hung" (tarefa pendurada)
O fuzzer syzbot tem encontrado problemas de "task hung" desde que o driver dummy-hcd foi alterado para usar hrtimers em vez de timers regulares. Descobriu-se que os problemas são causados por uma diferença sutil entre as APIs timer_pending() e hrtimer_active().
A substituição fez a troca da primeira pela segunda cegamente. No entanto, timer_pending() retorna True quando o timer está enfileirado (queued), mas não quando seu callback está em execução, enquanto hrtimer_active() retorna True quando o hrtimer está enfileirado _ou_ seu callback está em execução. Essa diferença ocasionalmente fez com que dummy_urb_enqueue() acreditasse que a rotina de callback ainda não havia começado, quando na verdade estava quase terminando. Como resultado, o hrtimer não foi reiniciado, o que tornou impossível para o driver desenfileirar (dequeue) posteriormente o URB que acabara de ser enfileirado. Isso fez com que usb_kill_urb() ficasse pendurado (hang), e a situação piorou a partir daí.
Como os hrtimers não possuem uma API para indicar quando estão enfileirados e o callback não está em execução, o driver deve controlar isso por conta própria. É exatamente isso que este patch faz, adicionando um novo flag "timer_pending" e definindo ou limpando-o nos momentos apropriados.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.