🇰🇷 한글 설명
Linux 커널의 dm(Device Mapper) 구성 요소에서 테이블 로드 및 언로드 시 경합 조건(Race Condition)이 발생합니다. 테이블 로드 중 잠금(Lock) 없이 장치 목록을 탐색하는 과정에서 메모리 해제가 동시에 일어나면 잘못된 메모리에 접근할 수 있는 취약점입니다.
💡 쉬운 설명
컴퓨터의 저장 장치를 관리하는 프로그램이 동시에 두 가지 작업을 처리하려 할 때, 데이터가 사라진 빈 공간을 참조하여 오류가 발생하는 문제입니다. 이로 인해 시스템이 멈추거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
dm: fix race when loading and unloading a table
If the userspace calls two concurrent table load ioctls and one of them
succeeds and the other fails, there is a race condition because
dm_setup_md_queue walks &md->table_devices without any lock. If the walk
races with dm_table_destroy -> free_devices -> dm_put_table_device, there
is access to invalid memory.
Fix this race by extending the lock over the list walk.
📍 영향받는 시스템
Linux Kernel (Device Mapper 구성 요소가 포함된 버전)
⚔️ 공격 벡터
사용자 공간(Userspace)에서 동시에 두 개의 테이블 로드 ioctl 호출을 수행하여 경합 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 리스트 탐색 시 잠금(Lock)이 적용되도록 수정
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인