🇰🇷 한글 설명
Linux 커널의 Squashfs 구성 요소에서 블록 오프셋이 음수인지 확인하지 않아 발생하는 취약점입니다. 조작된 Squashfs 파일 시스템을 마운트할 경우, squashfs_copy_data() 함수가 범위를 벗어난 메모리에 접근하여 시스템 오류를 유발할 수 있습니다.
💡 쉬운 설명
파일을 읽을 때 위치를 나타내는 숫자가 잘못되어 컴퓨터의 허용된 영역 밖을 건드리는 문제입니다. 공격자가 특수하게 만든 파일을 통해 시스템의 메모리 영역을 침범할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Squashfs: check block offset is not negative
If a negative offset is read off disk (for example the offset into the
decompressed fragment block), this will cause squashfs_copy_data() to
perform an out of bounds access.
Fix by checking if offset is negative, and returning 0. This matches
existing behaviour where an offset beyond the block returns 0 bytes
copied.
To trigger this out of bounds access requires a crafted Squashfs
filesystem and CAP_SYS_ADMIN to mount it. Unprivileged users will not be
able to mount such a filesystem, but once mounted, an unprivileged user
can trigger the out of bounds access by reading the crafted file with the
negative offset.
📍 영향받는 시스템
Squashfs를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
CAP_SYS_ADMIN 권한을 가진 사용자가 조작된 Squashfs 파일을 마운트한 후, 일반 사용자가 해당 파일의 특정 부분을 읽어 메모리 범위를 벗어난 접근을 유도함
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 오프셋 음수 체크 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.