🇰🇷 한글 설명
리눅스 커널의 mpi3mr 드라이버에서 mpi3mr_fault_uevent_emit 함수 실행 중 데드락(교착 상태)이 발생할 수 있는 취약점이 해결되었습니다. 오류 발생 시 메모리 할당 과정에서 I/O 차단 상태와 충돌하여 시스템이 멈출 수 있는 문제입니다. 이를 해결하기 위해 memalloc_noio_save()를 사용하여 메모리 할당 방식을 개선했습니다.
💡 쉬운 설명
컴퓨터의 저장 장치와 통신하는 과정에서 오류가 났을 때, 시스템이 스스로를 복구하려다 오히려 완전히 멈춰버리는 현상이 발생할 수 있습니다. 이 문제는 메모리를 할당하는 방식을 안전하게 변경하여 시스템이 멈추지 않도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: mpi3mr: Fix potential deadlock in mpi3mr_fault_uevent_emit
mpi3mr_fault_uevent_emit() runs from the fault watchdog and reset paths
where host I/O may already be blocked. GFP_KERNEL allocations here, both
the local kzalloc_obj() and the ones inside kobject_uevent_env() itself,
can trigger reclaim that waits on that blocked I/O and deadlock.
Use memalloc_noio_save()/restore() to cover the whole call instead of
just the local allocation.
📍 영향받는 시스템
MPI3MR 드라이버를 사용하는 리눅스 커널 기반 시스템
⚔️ 공격 벡터
직접적인 외부 공격보다는 특정 하드웨어 오류 상황에서 시스템이 멈추는 서비스 거부(DoS) 형태의 발생 가능성
🛡️ 대응 방법
해당 패치가 적용된 최신 버전의 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이상인지 확인