🇰🇷 한글 설명
Linux 커널의 dwc2 드라이버에서 HCD 상태를 해제하기 전에 웨이크업 타이머를 종료하지 않아 발생하는 취약점입니다. dwc2_hcd_free 함수가 호스트 상태를 해제한 후에 타이머를 삭제하기 때문에, 타이머 콜백이 다시 실행되어 잘못된 메모리 영역에 접근할 위험이 있습니다.
💡 쉬운 설명
컴퓨터가 잠에서 깨어날 때 사용하는 타이머가 시스템의 중요한 정보를 지운 뒤에도 계속 작동하여 오류를 일으킬 수 있는 문제입니다. 타이머를 정보를 지우기 전에 미리 안전하게 끄도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
USB: dwc2: shut down wakeup timer before freeing HCD state
dwc2_wakeup_detected() accesses the DWC2 host state and can rearm the
wakeup timer. dwc2_hcd_free() currently deletes the timer only after
freeing host-owned state, and timer_delete() does not synchronize a
callback or prevent it from being queued again.
Stop and shut down the timer in dwc2_hcd_release(), before the HCD
resources are freed. This covers both the HCD initialization error path
and normal HCD removal.
📍 영향받는 시스템
dwc2 드라이버를 사용하는 Linux 커널 기반 시스템
⚔️ 공격 벡터
로컬 공격자가 특정 USB 장치 동작을 유도하여 커널 메모리 오류 또는 시스템 충돌을 유발할 수 있음
🛡️ 대응 방법
dwc2_hcd_release() 단계에서 타이머를 먼저 종료하도록 커널 패치를 적용하거나 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인