CVE-2026-64454 in Linux
요약
\~에 의해 VulDB • 2026. 07. 25.
리눅스 커널에서 다음 취약점이 해결되었습니다:
usb: dwc3: 슬립 가능한 서스펜드 컨텍스트에서 gadge트 디스크넥트를 실행합니다.
dwc3_gadget_suspend()는 IRQ가 비활성화된 상태에서 dwc->lock을 획득한 후 dwc3_disconnect_gadget()를 호출합니다. 비동기 콜백에 대해 이 헬퍼 함수는 일반 spin_unlock()/spin_lock()만 사용하므로, gadge트 ->disconnect() 콜백은 여전히 IRQ가 비활성화된 상태에서도 실행되며 슬립 가능한 콜백이 발생하면 Lockdep에서 오류를 보고합니다.
본 문제는 정적 분석 도구를 통해 발견되었으며, 현재 트리와 수동으로 검토되었습니다.
근거 있는 PoC(Proof of Concept)는 dwc3_gadget_suspend() -> dwc3_disconnect_gadget() -> gadge트_driver->disconnect() 체인을 유지했으며, Lockdep에서 다음을 보고했습니다:
BUG: sleeping function called from invalid context gadget_disconnect+0x21/0x39 [vuln_msv]
dwc3_gadget_suspend.constprop.0+0x2b/0x42 [vuln_msv]
디스크넥트 콜백 선택을 하나의 공통 헬퍼 함수로 유지하되, 슬립 가능한 서스펜드 측 래퍼를 추가하여 dwc->lock 하에서 콜백의 스냅샷을 찍은 후 spin_unlock_irqrestore() 이후에 이를 실행합니다. 일반적인 이벤트 경로는 기존 spin_unlock()/spin_lock() 창을 계속 사용합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.