🇰🇷 한글 설명
리눅스 커널의 HFS+ 파일시스템에서 마운트 API 변환 시 sb->s_fs_info 메모리 누수 발생. setup_bdev_super() 실패 시 할당된 메모리가 해제되지 않아 거부 서비스(DoS) 공격에 악용 가능.
💡 쉬운 설명
HFS+ 디스크를 리눅스에서 마운트할 때 메모리 누수가 발생하여, 공격자가 메모리를 소진시켜 시스템을 느리게 만들 수 있습니다. 커널 패치로 고쳐집니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
hfsplus: ensure sb->s_fs_info is always cleaned up
When hfsplus was converted to the new mount api a bug was introduced by
changing the allocation pattern of sb->s_fs_info. If setup_bdev_super()
fails after a new superblock has been allocated by sget_fc(), but before
hfsplus_fill_super() takes ownership of the filesystem-specific s_fs_info
data it was leaked.
Fix this by freeing sb->s_fs_info in hfsplus_kill_super().
📍 영향받는 시스템
Linux kernel 5.10+ (HFS+ 마운트 API 변환 이후 버전들)
⚔️ 공격 벡터
원격에서 특수 제작된 HFS+ 파일시스템 이미지 마운트 시도로 메모리 누수 트리거
🛡️ 대응 방법
Linux 커널을 hfsplus_kill_super() 함수 패치가 포함된 최신 버전으로 업데이트
🔧 검증 코드
커널 버전 5.10 이상이고 hfsplus_kill_super()에서 s_fs_info 정리 코드가 있으면 패치된 상태이며, 없으면 취약함
uname -r | grep -E '(5\.(10|[1-9][0-9])|[6-9]\.[0-9])' && grep -r 'hfsplus_kill_super' /usr/src/linux* 2>/dev/null | grep -q 's_fs_info' && echo 'Patched' || echo 'Vulnerable'