🇰🇷 한글 설명
Linux 커널의 ALSA 드라이버(usx2y, us144mkii)에서 장치 연결 해제 시 작업 취소와 URB 종료 순서가 잘못되어 Use-After-Free(UAF) 취약점이 발생합니다. 작업 취소 후 URB이 완료되면 작업이 다시 예약되어, 이미 해제된 메모리 영역에서 핸들러가 실행될 수 있습니다.
💡 쉬운 설명
오디오 장치를 컴퓨터에서 뽑을 때, 프로그램이 이미 삭제된 메모리 공간을 다시 사용하려고 시도하여 시스템 오류나 보안 문제가 생길 수 있는 결함입니다. 장치를 제거하는 순서를 올바르게 수정하여 이 문제를 해결했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ALSA: usx2y: us144mkii: fix work UAF on disconnect
tascam_disconnect() cancels capture_work and midi_in_work before
usb_kill_anchored_urbs() kills the capture/MIDI-in URBs. Those URBs
self-resubmit, and their completion handlers reschedule the work.
A URB that completes in the small window between cancel_work_sync() and
usb_kill_anchored_urbs() therefore re-arms the work after its only
cancel. Nothing cancels it again before snd_card_free() frees the
card-private tascam structure, so the work handler then runs on freed
memory.
Kill the anchored URBs before cancelling the work; once the work is
cancelled no remaining URB can complete to re-arm it.
📍 영향받는 시스템
Linux kernel (ALSA usx2y, us144mkii 드라이버 사용 환경)
⚔️ 공격 벡터
물리적 또는 소프트웨어적 USB 장치 연결 해제 시 발생하는 레이스 컨디션(Race Condition)
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 최신 릴리스 버전인지 확인하십시오.