🇰🇷 한글 설명
Linux 커널의 SquashFS 구성 요소에서 딕셔너리 크기 범위 검증이 누락되어 발생하는 취약점입니다. 비정상적인 SquashFS 이미지를 마운트할 경우, 딕셔너리 크기가 0일 때 시프트 연산 과정에서 범위를 벗어난 연산(shift-out-of-bounds)이 발생할 수 있습니다.
💡 쉬운 설명
특수하게 제작된 압축 파일을 컴퓨터에 연결하려고 할 때, 계산 오류를 일으켜 시스템에 문제를 줄 수 있는 결함입니다. 잘못된 숫자를 사용하여 컴퓨터가 계산 범위를 넘어서는 동작을 하게 만듭니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
squashfs: Add dictionary size range check to prevent shift-out-of-bounds
When an abnormal SquashFS image (COMP_OPTS flag is 1 but dictionary size
is 0) is mounted, and performs shift operations using dictionarysize, the
shift exponent is -1, causing a shift-out-of-bounds.
Detail as below:
squashfs_comp_opts(msblk, buffer, length)
squashfs_xz_comp_opts()
if (comp_opts)
n = ffs(opts->dict_size) - 1;<----opts->dict_size=0, n=-1
if (opts->dict_size != (1 << n) && opts->dict_size !=
(1 << n) + (1 << (n + 1))) <----shift-out-of-bounds
Fix it by adding a dictionary size range check before the shift operation.
📍 영향받는 시스템
Linux Kernel (SquashFS 구성 요소가 포함된 모든 버전)
⚔️ 공격 벡터
조작된 SquashFS 이미지를 시스템에 마운트(Mount) 시도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인