🇰🇷 한글 설명
Linux 커널의 hfsplus 파일 시스템에서 hfs_bnode_create() 함수가 이미 존재하는 노드를 발견했을 때 참조 횟수를 증가시키지 않고 반환하는 취약점이 발견되었습니다. 이로 인해 참조 횟수 불일치가 발생하며, 이후 노드가 해제될 때 커널 패닉(Kernel Panic)을 유발할 수 있습니다. 파일 시스템 손상이나 비트맵 오류가 있을 때 이 문제가 발생할 수 있습니다.
💡 쉬운 설명
파일 시스템의 데이터 관리 과정에서 숫자를 잘못 세는 오류가 발생하여 컴퓨터 시스템이 갑자기 멈추거나 꺼질 수 있는 문제입니다. 파일이 깨져 있거나 특정 오류 상황에서 시스템이 충돌할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
hfsplus: return error when node already exists in hfs_bnode_create
When hfs_bnode_create() finds that a node is already hashed (which should
not happen in normal operation), it currently returns the existing node
without incrementing its reference count. This causes a reference count
inconsistency that leads to a kernel panic when the node is later freed
in hfs_bnode_put():
kernel BUG at fs/hfsplus/bnode.c:676!
BUG_ON(!atomic_read(&node->refcnt))
This scenario can occur when hfs_bmap_alloc() attempts to allocate a node
that is already in use (e.g., when node 0's bitmap bit is incorrectly
unset), or due to filesystem corruption.
Returning an existing node from a create path is not normal operation.
Fix this by returning ERR_PTR(-EEXIST) instead of the node when it's
already hashed. This properly signals the error condition to callers,
which already check for IS_ERR() return values.
📍 영향받는 시스템
hfsplus 파일 시스템을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
파일 시스템 손상 또는 비트맵 오류를 유도하여 커널 패닉을 일으키는 로컬 공격
🛡️ 대응 방법
hfsplus 관련 취약점이 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인