🇰🇷 한글 설명
Linux 커널의 XFS 파일 시스템에서 온라인 fsck 수행 중 iunlink 무한 루프 버그가 발견되었습니다. xrep_iunlink_resolve_bucket 함수가 디스크와 메모리의 포인터를 재구성하는 과정에서 next_unlinked 포인터를 통해 무한 루프에 빠질 수 있는 취약점입니다. 이미 확인한 inode를 기록하고 중복 여부를 체크함으로써 이 문제를 해결했습니다.
💡 쉬운 설명
파일 시스템을 검사하고 복구하는 과정에서 특정 오류가 발생하면 컴퓨터가 무한 반복 상태에 빠져 멈출 수 있는 문제입니다. 이미 확인한 데이터를 다시 확인하지 않도록 수정하여 시스템이 멈추는 것을 방지했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
xfs: fix another iunlink infinite loop bug in online fsck
xrep_iunlink_resolve_bucket is supposed to reconstruct as much of the
incore prev and next unlinked list pointers based on what it finds on
disk and in memory before we move on to relinking the truly lost inodes
back into the unlinked list. However, it's still vulnerable to infinite
loops that come in via the next_unlinked pointers.
Fix this problem by remembering which inodes we've already seen and
checking new agino pointers against that. If a bit is already set,
either this is a loop or the inode has nonzero link count. We'll deal
with the second case in a subsequent patch.
📍 영향받는 시스템
Linux Kernel (XFS 파일 시스템을 사용하는 버전)
⚔️ 공격 벡터
손상된 XFS 파일 시스템의 unlinked inode 포인터를 이용한 로컬 공격 또는 파일 시스템 손상 시 발생
🛡️ 대응 방법
XFS 무한 루프 수정 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인