🇰🇷 한글 설명
Linux 커널의 ALSA 드라이버에서 제어 구조를 제거할 때 메모리 해제 콜백을 적절히 사용하지 않아 발생하는 취약점입니다. 이로 인해 드라이버를 언로드하더라도 ALSA 제어 항목이 남아 있어, 해당 항목에 접근할 경우 세그멘테이션 오류나 잘못된 포인터 참조가 발생할 수 있습니다.
💡 쉬운 설명
사운드 카드 드라이버를 삭제할 때 관련 데이터가 완전히 지워지지 않고 찌꺼기가 남는 문제입니다. 이 남은 데이터에 접근하려고 하면 시스템 프로그램이 갑자기 종료되거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ALSA: hda/cs_dsp_ctl: Use private_free for control cleanup
Use the control private_free callback to free the associated data
block. This ensures that the memory won't leak, whatever way the
control gets destroyed.
The original implementation didn't actually remove the ALSA
controls in hda_cs_dsp_control_remove(). It only freed the internal
tracking structure. This meant it was possible to remove/unload the
amp driver while leaving its ALSA controls still present in the
soundcard. Obviously attempting to access them could cause segfaults
or at least dereferencing stale pointers.
📍 영향받는 시스템
ALSA(Advanced Linux Sound Architecture)를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
드라이버 언로드 후 남아있는 잘못된 메모리 주소(stale pointer)를 참조하도록 유도하여 시스템 오류 유발
🛡️ 대응 방법
ALSA 제어 구조의 cleanup 과정에서 private_free 콜백을 사용하도록 커널 패치 적용
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인합니다.