🇰🇷 한글 설명
Linux 커널의 ALSA us144mkii 드라이버에서 URB 재제출 시 중복된 usb_anchor_urb 호출로 인해 앵커 리스트가 손상되는 취약점입니다. 이로 인해 리스트가 오염되고 참조 횟수가 증가하며, 스트림 중지나 연결 해제 시 손상된 리스트를 탐색하는 과정에서 Use-After-Free 오류가 발생할 수 있습니다.
💡 쉬운 설명
오디오 장치를 사용하는 과정에서 시스템 내부의 데이터 관리 목록이 꼬이게 되어 발생하는 문제입니다. 이 오류가 발생하면 시스템이 예기치 않게 종료되거나 보안 공격에 취약해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ALSA: us144mkii: capture_urb_complete: redundant usb_anchor_urb corrupts anchor list on each resubmission
In capture_urb_complete(), usb_anchor_urb() is called on every
completion callback, but the URB is already anchored from the
initial submission in tascam_trigger_start(). Each redundant call
corrupts the anchor's doubly-linked list and inflates the URB
refcount. When usb_kill_anchored_urbs() traverses the list during
stream stop / suspend / disconnect, the corrupted list leads to
use-after-free.
Remove the redundant usb_anchor_urb() from the resubmit path.
📍 영향받는 시스템
ALSA us144mkii 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
특정 USB 오디오 장치의 데이터 전송(URB) 과정을 유도하여 메모리 오류를 일으키는 방식
🛡️ 대응 방법
커널 패치를 적용하여 capture_urb_complete 함수 내의 중복된 usb_anchor_urb 호출을 제거해야 합니다.
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 최신 패치 버전인지 확인합니다.