🇰🇷 한글 설명
Linux 커널의 blk_stack_limits() 함수에서 chunk_sectors 값을 바이트 단위로 변환할 때 unsigned int 정수 오버플로우가 발생할 수 있다. 이를 섹터 기반 체크로 변경하여 오버플로우를 방지한다.
💡 쉬운 설명
Linux 커널의 저장소 관리 부분에서 데이터 크기 계산 시 숫자가 저장 한계를 초과하는 오류가 있었다. 계산 방식을 변경하여 이 문제를 해결했다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
block: avoid possible overflow for chunk_sectors check in blk_stack_limits()
In blk_stack_limits(), we check that the t->chunk_sectors value is a
multiple of the t->physical_block_size value.
However, by finding the chunk_sectors value in bytes, we may overflow
the unsigned int which holds chunk_sectors, so change the check to be
based on sectors.
📍 영향받는 시스템
Linux kernel 모든 버전 (2.6.31 이후 blk_stack_limits 함수가 있는 버전)
⚔️ 공격 벡터
특정 블록 디바이스 스택 설정을 통해 정수 오버플로우 조건을 트리거하여 커널 메모리 손상 야기
🛡️ 대응 방법
커널 패치가 적용된 최신 버전으로 업데이트 (배포판 보안 업데이트 적용)
🔧 검증 코드
커널 버전을 확인하고 CVE 공지사항의 수정 버전과 비교하며, blk_stack_limits 함수가 커널에 포함되어 있는지 확인
uname -r && grep -i 'blk_stack_limits' /proc/kallsyms 2>/dev/null | head -1 || echo 'kernel_check_not_available'