🇰🇷 한글 설명
Linux 커널의 NILFS2 파일 시스템에서 손상된 디렉토리를 이름 변경할 때 발생하는 버그입니다. nilfs_dotdot() 함수가 디렉토리 엔트리의 일관성을 충분히 검사하지 않아, 페이지 크기를 초과하는 위치에 접근하여 커널 오류를 유발할 수 있습니다.
💡 쉬운 설명
파일 시스템의 일부가 깨진 상태에서 폴더 이름을 바꾸려고 하면 컴퓨터의 핵심 시스템(커널)이 예상치 못한 동작을 하여 멈추거나 오류가 발생할 수 있습니다. 이는 잘못된 메모리 위치를 참조하기 때문에 발생하는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
nilfs2: fix kernel bug on rename operation of broken directory
Syzbot reported that in rename directory operation on broken directory on
nilfs2, __block_write_begin_int() called to prepare block write may fail
BUG_ON check for access exceeding the folio/page size.
This is because nilfs_dotdot(), which gets parent directory reference
entry ("..") of the directory to be moved or renamed, does not check
consistency enough, and may return location exceeding folio/page size for
broken directories.
Fix this issue by checking required directory entries ("." and "..") in
the first chunk of the directory in nilfs_dotdot().
📍 영향받는 시스템
NILFS2 파일 시스템을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
손상된 디렉토리 구조를 가진 NILFS2 파일 시스템 내에서 rename(이름 변경) 작업 수행
🛡️ 대응 방법
NILFS2의 nilfs_dotdot() 함수 수정 사항이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 보안 패치가 적용된 최신 버전인지 확인