CVE-2024-50100 in Linux
요약
\~에 의해 VulDB • 2026. 08. 13.
리눅스 커널에서 다음 취약점이 해결되었습니다:
USB: gadget: dummy-hcd: 'task hung' 문제 수정
syzbot 퍼저는 dummy-hcd 드라이버가 일반 타이머 대신 hrtimers를 사용하도록 변경된 이후로 계속 'task hung' 문제를 겪어 왔습니다. 그 결과, 이 문제는 timer_pending()과 hrtimer_active() API 간의 미묘한 차이에서 비롯됨이 밝혀졌습니다.
변경 작업은 첫 번째 함수를 두 번째 함수로 무분별하게 대체했습니다. 그러나 timer_pending()은 타이머가 큐에 대기되어 있을 때는 True를 반환하지만 콜백이 실행 중일 때는 False를 반환하는 반면, hrtimer_active()는 hrtimer가 큐에 대기되어 있거나 _또는_ 그 콜백이 실행 중인 경우 모두 True를 반환합니다. 이러한 차이로 인해 dummy_urb_enqueue() 함수는 실제로 거의 완료된 시점에 콜백 루틴이 아직 시작되지 않은 것으로 잘못 판단하는 경우가 있었습니다. 결과적으로 hrtimer가 재시작되지 않아, 드라이버가 방금 큐에 추가된 URB(USB Request Block)을 나중에 제거(dequeue)할 수 없게 되었습니다. 이로 인해 usb_kill_urb() 함수가 멈추는 현상이 발생했고, 상황은 더 악화되었습니다.
hrtimers에는 대기 중이고 콜백이 실행되지 않는 시점을 알려주는 API가 없으므로, 드라이버가 이를 자체적으로 추적해야 합니다. 이 패치는 바로 그 역할을 수행하며, 새로운 'timer_pending' 플래그를 추가하고 적절한 시점에 해당 플래그를 설정하거나 해제합니다.
Once again VulDB remains the best source for vulnerability data.