🇰🇷 한글 설명
리눅스 커널의 JFS 파일 시스템 내 dbAllocAG 함수에서 비트 이동 연산 시 범위를 벗어나는 취약점이 발견되었습니다. bmp->db_agl2size 필드에 대한 검증이 누락되어 발생하며, 이 값이 64보다 클 경우 시스템 충돌을 유발할 수 있습니다.
💡 쉬운 설명
파일 시스템을 관리하는 특정 코드에서 숫자를 계산할 때 허용된 범위를 넘어서는 잘못된 계산을 수행하는 오류입니다. 이 오류가 발생하면 컴퓨터 시스템이 갑자기 멈추거나 꺼질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
fs: jfs: fix shift-out-of-bounds in dbAllocAG
Syzbot found a crash : UBSAN: shift-out-of-bounds in dbAllocAG. The
underlying bug is the missing check of bmp->db_agl2size. The field can
be greater than 64 and trigger the shift-out-of-bounds.
Fix this bug by adding a check of bmp->db_agl2size in dbMount since this
field is used in many following functions. The upper bound for this
field is L2MAXL2SIZE - L2MAXAG, thanks for the help of Dave Kleikamp.
Note that, for maintenance, I reorganized error handling code of dbMount.
📍 영향받는 시스템
JFS(Journaled File System)를 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
조작된 JFS 파일 시스템 이미지를 마운트하여 커널의 비트 연산 오류를 유도함으로써 시스템 충돌(DoS) 유발
🛡️ 대응 방법
dbMount 함수 내에서 db_agl2size 필드에 대한 유효성 검사를 수행하도록 커널을 최신 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 보안 업데이트 버전인지 확인