🇰🇷 한글 설명
리눅스 커널의 SCSI sd 드라이버에서 scsi_alloc_sgtables() 호출 실패 시 special_vec mempool의 메모리가 해제되지 않고 누수되는 취약점이 발견되었습니다. UNMAP 또는 WRITE SAME 명령 처리 중 오류가 발생하면 uninit_command()가 호출되지 않아 페이지 메모리가 누수됩니다.
💡 쉬운 설명
컴퓨터가 특정 명령을 처리하다가 오류가 났을 때, 사용했던 메모리를 다시 돌려주지 않고 계속 붙잡고 있는 문제입니다. 이 문제가 반복되면 시스템의 메모리가 점점 부족해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: sd: Fix special_vec mempool leak when scsi_alloc_sgtables() fails
sd_set_special_bvec() allocates a special payload page for UNMAP and
WRITE SAME commands. If scsi_alloc_sgtables() fails afterward in
sd_setup_unmap_cmnd() or sd_setup_write_same{10,16}_cmnd(), the SCSI
midlayer does not call uninit_command() because RQF_DONTPREP is not set
yet, leaking the page.
Call sd_uninit_command() on error, and clear RQF_SPECIAL_PAYLOAD after
freeing the page.
📍 영향받는 시스템
Linux kernel (scsi: sd driver components)
⚔️ 공격 벡터
로컬 공격자가 특수하게 조작된 SCSI 명령(UNMAP, WRITE SAME)을 전달하여 메모리 누수를 유도할 수 있음
🛡️ 대응 방법
scsi: sd 드라이버의 패치가 적용된 최신 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인