🇰🇷 한글 설명
Linux 커널의 ALSA usbusx2y 드라이버에서 인터럽트 콜백 시 URB의 실제 길이를 검증하지 않는 취약점이 발견되었습니다. 이로 인해 오작동하는 장치로부터 짧은 데이터가 전송될 경우, 초기화되지 않은 힙 메모리 데이터가 사용자 접근 가능한 배열로 복사될 수 있습니다.
💡 쉬운 설명
USB 장치가 예상보다 적은 데이터를 보낼 때, 컴퓨터 메모리의 쓰레기 값이 그대로 노출될 수 있는 문제입니다. 이를 통해 공격자가 시스템의 민감한 정보를 엿볼 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ALSA: usbusx2y: validate URB actual_length in interrupt callback
i_usx2y_in04_int() processes the interrupt URB data without checking
urb->actual_length. A short transfer from a malfunctioning device
would cause the handler to process uninitialized heap data from the
kmalloc-allocated in04_buf, which is then copied to the mmap-accessible
ctl_snapshot[] array.
Fix by using kzalloc() for in04_buf to zero-initialize the buffer,
and adding an actual_length check to skip processing on short
transfers while still resubmitting the URB.
📍 영향받는 시스템
Linux kernel (ALSA usbusx2y driver 포함 버전)
⚔️ 공격 벡터
오작동하는 USB 장치를 연결하여 의도적으로 짧은 데이터 전송을 유도함으로써 메모리 정보 유출
🛡️ 대응 방법
커널 업데이트를 통해 kzalloc() 적용 및 actual_length 검증 로직이 포함된 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인