🇰🇷 한글 설명
리눅스 커널의 ua101 사운드 드라이버에서 USB 장치의 채널 수(bNrChannels) 검증 누락으로 인해 0으로 나누기 오류가 발생할 수 있습니다. 이 결함은 프레임 바이트가 0이 되어 URB 완료 핸들러에서 커널 패닉을 유발합니다.
💡 쉬운 설명
USB 사운드 장치를 연결할 때 장치의 채널 정보가 잘못되면 시스템이 충돌할 수 있습니다. 제조사는 이 문제를 해결하기 위해 잘못된 입력을 차단하는 안전 장치를 추가했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sound: ua101: fix division by zero at probe
Add a missing sanity check for bNrChannels in detect_usb_format()
to prevent a division by zero in playback_urb_complete() and
capture_urb_complete().
USB core does not validate class-specific descriptor fields such
as bNrChannels, so drivers must verify them before use. If a
device provides bNrChannels = 0, frame_bytes becomes zero and is
later used as a divisor in the URB completion handlers, leading
to a kernel crash.
📍 영향받는 시스템
Linux kernel (ua101 사운드 드라이버가 포함된 모든 버전)
⚔️ 공격 벡터
악성 또는 비표준 USB 사운드 장치를 시스템에 물리적으로 연결하여 0 채널 정보를 전송
🛡️ 대응 방법
운영 체제 및 커널을 최신 안정 버전으로 업데이트하여 ua101 드라이버 패치를 적용
🔧 검증 코드
출력된 커널 버전이 취약한 ua101 드라이버를 포함하는지 공식 보안 공지 또는 패치 로그를 통해 확인