🇰🇷 한글 설명
Linux 커널의 MD RAID5 드라이버 raid5_store_group_thread_cnt() 함수에서 mddev->private가 NULL일 때 conf를 역참조하는 널 포인터 역참조 문제가 있습니다. 수정은 conf가 NULL이면 mddev 잠금을 해제하고 raid5_quiesce() 호출 전에 반환하도록 하는 것입니다.
💡 쉬운 설명
RAID 저장장치 관리 기능에서 필요한 설정 정보가 없는 상태에서 작업을 시도해 시스템이 비정상 종료될 수 있는 결함입니다. 커널 패치를 적용하면 이 문제가 해결됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
md/raid5: fix possible null-pointer dereferences in raid5_store_group_thread_cnt()
The variable mddev->private is first assigned to conf and then checked:
conf = mddev->private;
if (!conf) ...
If conf is NULL, then mddev->private is also NULL. In this case,
null-pointer dereferences can occur when calling raid5_quiesce():
raid5_quiesce(mddev, true);
raid5_quiesce(mddev, false);
since mddev->private is assigned to conf again in raid5_quiesce(), and conf
is dereferenced in several places, for example:
conf->quiesce = 0;
wake_up(&conf->wait_for_quiescent);
To fix this issue, the function should unlock mddev and return before
invoking raid5_quiesce() when conf is NULL, following the existing pattern
in raid5_change_consistency_policy().
📍 영향받는 시스템
패치 이전의 Linux 커널 (MD RAID5 드라이버 사용 시얻)
⚔️ 공격 벡터
로컬 권한을 가진 사용자가 RAID5 그룹 스레드 개수 설정 인터페이스를 조작해 커널 패닉을 유발할 수 있음
🛡️ 대응 방법
배포판 벤더가 제공하는 최신 커널 보안 업데이트를 적용하고 재부팅
🔧 검증 코드
커널 버전을 확인하여 패치된 버전(벤더 보안 공지 기준)보다 이전이면 취약하며, raid5 장치가 없으면 이 취약점의 영향을 받지 않습니다.
uname -r && (ls /sys/block/md*/md/group_thread_cnt 2>/dev/null || echo 'no md raid5 devices') && grep -i raid5 /proc/mdstat 2>/dev/null