🇰🇷 한글 설명
Linux 커널의 mpt3sas SCSI 드라이버에서 mpt3sas_transport_port_add() 함수가 sas_port_alloc_num(), sas_end_device_alloc(), sas_expander_alloc() 등의 반환값(NULL 가능)을 검사하지 않아 NULL 포인터 역참조가 발생할 수 있습니다. 또한 sas_rphy_add() 실패 시 rphy가 NULL로 설정된 뒤에도 이후 코드가 이를 참조하는 문제가 수정되었습니다.
💡 쉬운 설명
서버의 저장장치 연결을 관리하는 드라이버가 비어 있는 값을 확인하지 않고 사용하는 버그입니다. 이로 인해 시스템이 비정상 종료(커널 패닉)될 수 있으나, 일반적으로 원격 침해보다는 안정성 문제에 가깝습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: mpt3sas: Fix NULL pointer access in mpt3sas_transport_port_add()
Port is allocated by sas_port_alloc_num() and rphy is allocated by either
sas_end_device_alloc() or sas_expander_alloc(), all of which may return
NULL. So we need to check the rphy to avoid possible NULL pointer access.
If sas_rphy_add() returned with failure, rphy is set to NULL. We would
access the rphy in the following lines which would also result NULL pointer
access.
📍 영향받는 시스템
mpt3sas 드라이버를 사용하는 수정 이전의 Linux 커널 버전 (LSI/Broadcom SAS HBA 장착 시스템)
⚔️ 공격 벡터
로컬 또는 하드웨어 연결 상태에 따른 SAS 장치 오류 유발 시 NULL 포인터 역참조로 인한 서비스 거부(커널 패닉) 가능성
🛡️ 대응 방법
배포판 제공 최신 커널로 업데이트하여 패치된 mpt3sas 드라이버를 적용하고 재부팅합니다.
🔧 검증 코드
출력된 커널 버전이 패치가 포함된 상위 버전인지 배포판 보안 공지와 대조하고, mpt3sas 모듈이 로드되지 않았다면 이 취약점의 영향을 받지 않습니다.
uname -r && (lsmod | grep -E '^mpt3sas' || echo 'mpt3sas 모듈 미로드')