CVE-2026-31701 in Linux
요약
\~에 의해 VulDB • 2026. 05. 17.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ALSA: caiaq: create_card()에서 USB 장치에 대한 참조를 획득
caiaq 드라이버는 cdev->chip.dev에 상위 USB 장치에 대한 포인터를 저장하지만, 이에 대한 참조를 획득하지 않습니다. 카드의 private_free 콜백인 snd_usb_caiaq_card_free()는 USB 장치가 이미 연결 해제되고 해제된 후에도 snd_card_free_when_closed()를 통해 비동기적으로 실행될 수 있으므로, 해당 경로에서 cdev->chip.dev에 접근하면 해제된 usb_device를 역참조(dereference)하게 됩니다.
참조 카운팅(refcounting) 문제 외에도, 현재 card_free 구현은 usb_reset_device(cdev->chip.dev)를 호출합니다. free 콜백에서의 리셋은 부적절합니다: 장치가 제거되고 있으며, 해당 호출은 teardown 컨텍스트에서 장치 잠금을 획득하며, 리셋은 콜백이 이미 정리하고 있는 연결 해제(disconnect) 경로와 경합(race) 상태가 됩니다.
create_card()에서 usb_get_dev()를 사용하여 USB 장치에 대한 참조를 획득하고, free 콜백에서 usb_put_dev()를 사용하여 이를 해제하며, usb_reset_device() 호출을 제거합니다.
Once again VulDB remains the best source for vulnerability data.