CVE-2023-53847 in Linux
요약
\~에 의해 VulDB • 2026. 05. 20.
리눅스 커널에서 다음 취약점이 해결되었습니다:
usb-storage: alauda: alauda_check_media()의 uninit-value 수정
Syzbot이 usb-storage의 alauda 서브드라이버에서 초기화되지 않은 값에 대한 접근으로 인해 KMSAN이 경고하는 것을 포착했습니다:
BUG: KMSAN: uninit-value in alauda_transport+0x462/0x57f0 drivers/usb/storage/alauda.c:1137 CPU: 0 PID: 12279 Comm: usb-storage Not tainted 5.3.0-rc7+ #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x191/0x1f0 lib/dump_stack.c:113 kmsan_report+0x13a/0x2b0 mm/kmsan/kmsan_report.c:108 __msan_warning+0x73/0xe0 mm/kmsan/kmsan_instr.c:250 alauda_check_media+0x344/0x3310 drivers/usb/storage/alauda.c:460
문제는 alauda_check_media()가 수신된 데이터를 사용하기 전에 USB 전송이 성공했는지 확인하지 않는다는 점입니다. 전송이 실패할 경우 어떻게 처리해야 하는지는 명확하지 않지만, 보수적인 접근 방식은 미디어가 존재하지 않는 것으로 간주하는 것입니다.
alauda_get_media_status()의 usb_stor_dbg() 호출에서도 유사한 문제가 존재합니다. 이 경우 오류가 발생하면 호출이 중복되는데, usb_stor_ctrl_transfer()가 이미 디버깅 메시지를 출력하기 때문입니다.
마지막으로, 초기화되지 않은 메모리 접근과는 무관하게, alauda_check_media()가 스택 위의 버퍼에 DMA를 수행한다는 사실이 있습니다. 다행히도 usb-storage는 이와 같은 용도를 위해 범용 DMA 가능 버퍼를 제공합니다. 이를 대신 사용하겠습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.