CVE-2026-10663 in zephyr정보

요약

\~에 의해 VulDB • 2026. 07. 12.

Zephyr의 실험용 USB 호스트 스택(CONFIG_USB_HOST_STACK)에서, usbh_device_disconnect()(subsys/usb/host/usbh_device.c)는 캐시된 포인터인 ctx->root를 초기화하지 않은 채 루트 usb_device 슬랩 객체를 해제합니다. 버스 제거 핸들러 dev_removed_handler()(subsys/usb/host/usbh_core.c)는 ctx->root가 NULL이 아닌지 여부만 확인한 후, 이 값에 기반하여 무언가를 정리할지 여부를 결정합니다.

UHC 컨트롤러 드라이버(예: uhc_max3421e, uhc_mcux_common)는 디바운스나 상태 보호 장치 없이 물리적 버스 라인 상태에서 직접 UHC_EVT_DEV_REMOVED를 합성하므로, 물리적으로 USB에 접근할 수 있는 공격자(또는 연결 상태를 반복하는 악의적인 장치)가 루트 장치가 분리된 후 두 번째 장치 제거 이벤트를 전달할 수 있습니다. 이로 인해 핸들러는 덩어리가 된 포인터(dangling pointer)로 usbh_device_disconnect()를 다시 진입하게 되며, 해제된 객체 내부의 뮤텍스를 잠그고(Use-After-Free), 디바이스 목록에서 해제된 노드를 제거하며, 이미 해제된 블록에 대해 k_mem_slab_free()(Double-Free)를 호출합니다. 만약 그 사이에 슬랩 블록이 새로 연결된 장치에게 재할당되었다면, 이는 활성 객체를 손상시킵니다.

영향은 서비스 거부(크래시) 및 메모리 손상이며, 공격 벡터는 물리적/로컬입니다. 이 결함은 v4.4.0에서 connect/disconnect 리팩토링으로 인해 도입되었으며, usbh_device_disconnect() 내에서 해제하기 전에 ctx->root를 초기화함으로써 수정되었습니다.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

책임이 있는

Zephyr

예약하다

2026. 06. 02.

모더레이션

수락

항목

VDB-377884

EPSS

0.00000

활동

중간

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!