🇰🇷 한글 설명
Linux 커널의 ALSA USB-audio 드라이버에서 Scarlett2 mixer quirk 처리 시 잘못된 USB descriptor에 대한 유효성 검사가 없어 NULL 참조(dereference) 발생 가능. scarlett2_find_fc_interface() 함수가 endpoint 존재 여부를 확인하지 않아 시스템 다운을 초래할 수 있으며, bNumEndpoints 검증을 추가하여 해결.
💡 쉬운 설명
Linux에서 특정 USB 음향 장치(Scarlett2 믹서)를 사용할 때 장치 정보가 손상되면 시스템이 충돌할 수 있습니다. 드라이버가 장치 정보의 유효성을 먼저 확인하지 않기 때문입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ALSA: usb-audio: Check endpoint numbers at parsing Scarlett2 mixer interfaces
The Scarlett2 mixer quirk in USB-audio driver may hit a NULL
dereference when a malformed USB descriptor is passed, since it
assumes the presence of an endpoint in the parsed interface in
scarlett2_find_fc_interface(), as reported by fuzzer.
For avoiding the NULL dereference, just add the sanity check of
bNumEndpoints and skip the invalid interface.
📍 영향받는 시스템
Linux kernel with ALSA USB-audio subsystem - Scarlett2 mixer interface support enabled in all versions
⚔️ 공격 벡터
Local attacker supplies malformed USB device or descriptor triggering NULL pointer dereference in kernel driver, causing system DoS (denial of service/crash)
🛡️ 대응 방법
Update Linux kernel with patch adding bNumEndpoints validation in scarlett2_find_fc_interface() function to skip invalid interfaces
🔧 검증 코드
bNumEndpoints 관련 검증 로직이 존재하면 패치 적용됨, 아무 결과도 없으면 취약한 버전임
grep -n 'bNumEndpoints' /usr/src/linux-headers-$(uname -r)/include/sound/*.h 2>/dev/null | grep -i scarlett