🇰🇷 한글 설명
Linux 커널의 ALSA usb-audio 드라이버에서 재생 전 무음 처리 과정 중 경계 외(OOB) 쓰기 취약점이 발견되었습니다. 캡처 스트림과 재생 스트림의 설정이 다를 경우 버퍼 크기를 초과하는 데이터가 복사되어 시스템 충돌(Kernel Oops)을 유발할 수 있습니다.
💡 쉬운 설명
USB 오디오 장치를 사용할 때 데이터 크기가 맞지 않으면 컴퓨터의 메모리 영역을 잘못 건드려 시스템이 멈추거나 꺼질 수 있는 문제입니다. 이번 수정은 데이터가 넘치지 않도록 검사하는 안전장치를 추가한 것입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ALSA: usb-audio: Add sanity check for OOB writes at silencing
At silencing the playback URB packets in the implicit fb mode before
the actual playback, we blindly assume that the received packets fit
with the buffer size. But when the setup in the capture stream
differs from the playback stream (e.g. due to the USB core limitation
of max packet size), such an inconsistency may lead to OOB writes to
the buffer, resulting in a crash.
For addressing it, add a sanity check of the transfer buffer size at
prepare_silent_urb(), and stop the data copy if the received data
overflows. Also, report back the transfer error properly from there,
too.
Note that this doesn't fix the root cause of the playback error
itself, but this merely covers the kernel Oops.
📍 영향받는 시스템
Linux kernel (ALSA usb-audio driver components)
⚔️ 공격 벡터
설정이 불일치하는 USB 오디오 장치를 연결하여 비정상적인 패킷을 전송함으로써 발생
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인