🇰🇷 한글 설명
Linux 커널의 mpi3mr SCSI 드라이버에서, SAS Transport Layer가 활성화된 환경에서 장치가 INQUIRY 명령에 실패하면 드라이버가 HBA 포트 데이터 구조의 메모리를 해제하지만 일부 참조가 초기화되지 않습니다. 이후 펌웨어가 같은 장치의 Device Info 변경 이벤트를 다시 보내면 해제된 메모리에 접근하여 메모리 손상과 시스템 크래시가 발생합니다.
💡 쉬운 설명
일부 저장장치가 특정 확인 명령에 응답하지 못하면, 리눅스 시스템이 이미 지운 메모리를 다시 사용하려다 멈출 수 있습니다. 이 결함은 서버가 갑자기 다운되는 원인이 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: mpi3mr: Bad drive in topology results kernel crash
When the SAS Transport Layer support is enabled and a device exposed to
the OS by the driver fails INQUIRY commands, the driver frees up the memory
allocated for an internal HBA port data structure. However, in some places,
the reference to the freed memory is not cleared. When the firmware sends
the Device Info change event for the same device again, the freed memory is
accessed and that leads to memory corruption and OS crash.
📍 영향받는 시스템
mpi3mr 드라이버를 사용하는 SAS Transport Layer 지원 Linux 커널 (수정 커밋 이전 버전)
⚔️ 공격 벡터
로컬 공격자가 직접 조작하기보다는 장치 오류와 펌웨어 이벤트 조합으로 발생하는 비정상 동작이며, 주로 서비스 거부(크래시)로 이어집니다.
🛡️ 대응 방법
배포판 보안 업데이트 또는 해당 수정이 포함된 최신 Linux 커널로 업그레이드하고 재부팅합니다.
🔧 검증 코드
출력된 커널 버전을 배포판의 보안 권고에 명시된 수정 버전과 비교하고, mpi3mr 모듈이 로드되지 않았다면 이 취약점의 영향을 받지 않습니다.
uname -r && (lsmod | grep -i mpi3mr || echo 'mpi3mr 모듈 미로드') && (dpkg -l linux-image-$(uname -r) 2>/dev/null | tail -1 || rpm -q kernel 2>/dev/null)