🇰🇷 한글 설명
Linux 커널의 NILFS2 파일 시스템에서 nilfs_empty_dir() 함수가 디렉토리 페이지 읽기 실패 시 이를 빈 디렉토리로 잘못 판단하여 파일 시스템을 손상시킬 수 있는 취약점입니다. 또한 I/O 오류 발생 시 루프를 지속하여 로그 작성 스레드가 대기 상태에 빠지고 시스템이 멈출 수 있는 문제가 포함되어 있습니다.
💡 쉬운 설명
파일을 읽는 과정에서 오류가 발생했을 때, 시스템이 이를 '비어 있음'으로 착각하여 데이터를 망가뜨리거나 무한 루프에 빠져 컴퓨터가 멈출 수 있는 문제입니다. 이로 인해 저장된 파일이 사라지거나 시스템이 응답하지 않을 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors
The error handling in nilfs_empty_dir() when a directory folio/page read
fails is incorrect, as in the old ext2 implementation, and if the
folio/page cannot be read or nilfs_check_folio() fails, it will falsely
determine the directory as empty and corrupt the file system.
In addition, since nilfs_empty_dir() does not immediately return on a
failed folio/page read, but continues to loop, this can cause a long loop
with I/O if i_size of the directory's inode is also corrupted, causing the
log writer thread to wait and hang, as reported by syzbot.
Fix these issues by making nilfs_empty_dir() immediately return a false
value (0) if it fails to get a directory folio/page.
📍 영향받는 시스템
NILFS2 파일 시스템을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
I/O 오류를 유발하여 파일 시스템의 오류 처리 로직을 트리거하는 방식
🛡️ 대응 방법
NILFS2 관련 오류 처리가 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인