🇰🇷 한글 설명
Linux 커널의 SCSI pm8001 드라이버에서 TMF sas_task가 I/O 완료 처리 전에 중단될 경우 Use-After-Free 취약점이 발생합니다. 타임아웃으로 인해 작업이 중단되어 메모리가 해제된 후, 뒤늦게 I/O 완료 처리가 시도되면서 해제된 메모리에 접근하게 됩니다.
💡 쉬운 설명
컴퓨터가 수행 중인 작업이 시간이 너무 오래 걸려 취소되었는데, 나중에 시스템이 이미 삭제된 작업 정보를 다시 읽으려고 시도하면서 오류가 발생하는 문제입니다. 이로 인해 시스템이 멈추거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: pm8001: Fix use-after-free for aborted TMF sas_task
Currently a use-after-free may occur if a TMF sas_task is aborted before we
handle the IO completion in mpi_ssp_completion(). The abort occurs due to
timeout.
When the timeout occurs, the SAS_TASK_STATE_ABORTED flag is set and the
sas_task is freed in pm8001_exec_internal_tmf_task().
However, if the I/O completion occurs later, the I/O completion still
thinks that the sas_task is available. Fix this by clearing the ccb->task
if the TMF times out - the I/O completion handler does nothing if this
pointer is cleared.
📍 영향받는 시스템
Linux kernel (scsi: pm8001 driver components)
⚔️ 공격 벡터
로컬 공격자가 특정 SCSI I/O 패턴을 유도하여 타임아웃 및 메모리 해제를 조작함으로써 발생 가능
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 TMF 타임아웃 시 태스크 포인터를 초기화하도록 수정
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인