🇰🇷 한글 설명
Linux kernel의 JFS 파일시스템에서 hard link 수가 0인 inode의 페이지가 truncate되지 않는 문제입니다. evict 작업 중 clear_inode() 함수 실행 시 nrpages가 0보다 커서 BUG_ON이 트리거되어 커널 패닉이 발생할 수 있습니다.
💡 쉬운 설명
JFS 파일시스템에서 삭제된 파일의 메모리가 제대로 정리되지 않아 커널이 비정상 종료될 수 있습니다. 특정 파일 삭제 시나리오에서만 발생하는 로컬 버그입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
jfs: truncate good inode pages when hard link is 0
The fileset value of the inode copy from the disk by the reproducer is
AGGR_RESERVED_I. When executing evict, its hard link number is 0, so its
inode pages are not truncated. This causes the bugon to be triggered when
executing clear_inode() because nrpages is greater than 0.
📍 영향받는 시스템
Linux kernel (JFS 파일시스템 사용) - 버전별 상이, 패치 이전 버전 영향
⚔️ 공격 벡터
로컬 사용자가 특정 hard link 조건의 파일을 조작하여 커널 패닉 유발 (권한 상승 불필요)
🛡️ 대응 방법
Linux kernel을 최신 패치 버전으로 업데이트하거나 JFS 파일시스템 사용을 피함
🔧 검증 코드
kernel 버전이 표시되고 JFS 마운트 포인트가 나타나면 취약한 상태; JFS가 없으면 영향 없음
uname -r | grep -E '[0-9]+\.[0-9]+' && mount | grep -i jfs