🇰🇷 한글 설명
Linux 커널의 ALSA 드라이버 내 Traktor Kontrol S4 입력 파서에서 경계 외 읽기(Out-of-bounds read) 취약점이 발견되었습니다. 장치에서 전달된 데이터 길이가 16바이트의 배수가 아닐 경우, 부호 없는 정수 언더플로우가 발생하여 메모리 범위를 초과하여 읽게 됩니다. 이로 인해 시스템의 민감한 정보가 노출될 위험이 있습니다.
💡 쉬운 설명
특정 음악 장비를 컴퓨터에 연결했을 때, 장비가 보내는 데이터의 크기를 잘못 계산하여 컴퓨터 메모리의 허용된 범위를 넘어 읽어들이는 문제입니다. 이 과정에서 컴퓨터 내부의 중요한 정보가 유출될 가능성이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ALSA: caiaq: fix out-of-bounds read in the Traktor Kontrol S4 input parser
snd_usb_caiaq_tks4_dispatch() decodes the Traktor Kontrol S4 input
stream in fixed 16-byte (TKS4_MSGBLOCK_SIZE) message blocks. On every
iteration it advances buf and subtracts the block size while looping on
"while (len)".
len is urb->actual_length. That value is supplied by the device and is
not guaranteed to be a multiple of 16. When a final short block leaves
len between 1 and 15, the loop runs once more, reads up to buf[15], and
then does "len -= TKS4_MSGBLOCK_SIZE". As len is unsigned this underflows
to a huge value. The loop then keeps iterating and walking buf far past
the end of the 512-byte ep4_in_buf, reading out of bounds until a bogus
block id happens to be hit.
Iterate only while a full message block is available. This stops the
unsigned underflow and silently drops any trailing partial block, which
carries no complete control value anyway.
The sibling endpoint-4 parsers are not affected. The Traktor Kontrol X1
and Maschine arms in snd_usb_caiaq_ep4_reply_dispatch() floor
urb->actual_length before dispatching.
📍 영향받는 시스템
Linux kernel (ALSA driver with Traktor Kontrol S4 support)
⚔️ 공격 벡터
악의적으로 조작된 USB 입력 데이터를 전송하는 하드웨어 장치를 통한 로컬 공격
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.