🇰🇷 한글 설명
Azure RTOS USBX 6.1.10 미만 버전에서 발생하는 버퍼 오버플로 취약점입니다. 공격자가 허용된 최대 포트 수(UX_MAX_TT)보다 큰 값을 가진 HUB 디스크립터를 제공할 경우, 메모리 경계를 침범하여 시스템 오류나 코드 실행을 유발할 수 있습니다.
💡 쉬운 설명
USB 허브가 실제보다 훨씬 많은 포트를 가지고 있다고 속이면, 컴퓨터의 메모리 영역을 넘어서 데이터를 쓰는 문제입니다. 이로 인해 기기가 멈추거나 해커가 시스템을 제어할 위험이 있습니다.
🇺🇸 원문 (English)
Azure RTOS USBX is a USB host, device, and on-the-go (OTG) embedded stack. In versions prior to 6.1.10, an attacker can cause a buffer overflow by providing the Azure RTOS USBX host stack a HUB descriptor with `bNbPorts` set to a value greater than `UX_MAX_TT` which defaults to 8. For a `bNbPorts` value of 255, the implementation of `ux_host_class_hub_descriptor_get` function will modify the contents of `hub` -> `ux_host_class_hub_device` -> `ux_device_hub_tt` array violating the end boundary by 255 - `UX_MAX_TT` items. The USB host stack needs to validate the number of ports reported by the hub, and if the value is larger than UX_MAX_TT, USB stack needs to reject the request. This fix has been included in USBX release 6.1.10.
📍 영향받는 시스템
Azure RTOS USBX versions prior to 6.1.10
⚔️ 공격 벡터
조작된 HUB 디스크립터(bNbPorts 값이 UX_MAX_TT보다 큰 값)를 포함한 USB 장치 연결
🛡️ 대응 방법
Azure RTOS USBX를 6.1.10 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 소스 코드 또는 빌드 설정 내 USBX 버전이 6.1.10 미만인지 확인하십시오.
grep -r "USBX" /path/to/firmware_source | grep -E 'version|6\.[0-9]+'