🇰🇷 한글 설명
Linux 커널의 mtip32xx 블록 드라이버에서 ioctl 핸들러가 장치 제거 상태를 확인하는 과정에서 발생하는 레이스 컨디션 취약점입니다. 장치가 제거되는 도중 ioctl이 실행되면 이미 해제된 메모리 영역을 참조하게 되어 시스템 불안정이나 오류를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품이 제거되는 순간에 해당 부품을 조작하려는 명령이 동시에 들어오면, 이미 사라진 부품을 찾으려다 시스템이 멈추거나 오류가 발생하는 문제입니다. 이를 방지하기 위해 부품 제거와 명령 수행 사이의 순서를 맞추는 작업이 필요합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
block: mtip32xx: synchronize ioctls with device removal
The ioctl handlers only test REMOVE_PENDING before entering
mtip_hw_ioctl(). Removal can set that bit immediately afterwards and free
dd->port in mtip_hw_exit() while an ioctl still dereferences it. An already
open block device can reach the handlers while del_gendisk() is in
progress.
Serialize both native and compat ioctls with removal. Set REMOVE_PENDING
before taking the mutex so new callers fail after an in-flight ioctl has
drained, and hold the mutex until the port has been torn down.
📍 영향받는 시스템
Linux kernel (mtip32xx driver 사용 시스템)
⚔️ 공격 벡터
장치 제거 프로세스가 진행 중인 상태에서 특정 ioctl 명령을 호출하여 메모리 참조 오류 유도
🛡️ 대응 방법
mtip32xx 드라이버의 ioctl 핸들러와 장치 제거 로직에 뮤텍스(Mutex)를 적용하여 동기화 처리된 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인