🇰🇷 한글 설명
Linux 커널의 ALSA usb-audio 드라이버에서 NULL 포인터 역참조 취약점이 발견되었습니다. UAC 버전 3 장치 처리 중 인터페이스 연결 기술자(IAD)를 가져오지 못할 경우, 적절한 검증 없이 해당 포인터를 참조하여 시스템 오류를 유발할 수 있습니다.
💡 쉬운 설명
특수하게 제작된 USB 오디오 장치를 연결했을 때, 컴퓨터의 운영체제가 장치 정보를 읽는 과정에서 오류를 일으켜 시스템이 멈추거나 충돌할 수 있는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ALSA: usb-audio: Fix NULL pointer dereference in snd_usb_mixer_controls_badd
In snd_usb_create_streams(), for UAC version 3 devices, the Interface
Association Descriptor (IAD) is retrieved via usb_ifnum_to_if(). If this
call fails, a fallback routine attempts to obtain the IAD from the next
interface and sets a BADD profile. However, snd_usb_mixer_controls_badd()
assumes that the IAD retrieved from usb_ifnum_to_if() is always valid,
without performing a NULL check. This can lead to a NULL pointer
dereference when usb_ifnum_to_if() fails to find the interface descriptor.
This patch adds a NULL pointer check after calling usb_ifnum_to_if() in
snd_usb_mixer_controls_badd() to prevent the dereference.
This issue was discovered by syzkaller, which triggered the bug by sending
a crafted USB device descriptor.
📍 영향받는 시스템
Linux kernel (ALSA usb-audio driver components)
⚔️ 공격 벡터
조작된 USB 장치 기술자(Descriptor)를 가진 USB 오디오 장치를 시스템에 연결
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이상인지 확인