🇰🇷 한글 설명
Linux 커널 btrfs 파일시스템에서 트리 블록 해제 중 delayed reference 생성이 실패하면 BUG_ON()으로 커널이 패닉되던 문제를 수정했습니다. 이제 오류를 상위 호출자에게 반환하고 트랜잭션을 중단하여 공간 누수를 방지합니다. 주로 메모리 할당 실패 상황에서 발생할 수 있습니다.
💡 쉬운 설명
리눅스의 btrfs 파일시스템이 특정 오류 상황에서 시스템을 강제로 멈추게 하던 문제입니다. 이제 오류를 안전하게 처리하도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
btrfs: do not BUG_ON() when freeing tree block after error
When freeing a tree block, at btrfs_free_tree_block(), if we fail to
create a delayed reference we don't deal with the error and just do a
BUG_ON(). The error most likely to happen is -ENOMEM, and we have a
comment mentioning that only -ENOMEM can happen, but that is not true,
because in case qgroups are enabled any error returned from
btrfs_qgroup_trace_extent_post() (can be -EUCLEAN or anything returned
from btrfs_search_slot() for example) can be propagated back to
btrfs_free_tree_block().
So stop doing a BUG_ON() and return the error to the callers and make
them abort the transaction to prevent leaking space. Syzbot was
triggering this, likely due to memory allocation failure injection.
📍 영향받는 시스템
Linux 커널 btrfs 파일시스템을 사용하는 수정 이전 버전 (6.x 계열 일부 포함)
⚔️ 공격 벡터
로컬 사용자가 메모리 부족 등을 유발하여 btrfs 작업 중 커널 패닉을 일으켜 서비스 거부(DoS)를 유발할 수 있음
🛡️ 대응 방법
배포판 제공 최신 커널 업데이트를 적용하고 재부팅하세요.
🔧 검증 코드
출력된 커널 버전이 배포판의 보안 패치 적용 버전(예: 6.10.x 이후 안정 브랜치의 수정 릴리스)인지 확인하고, 배포판 보안 공지에서 CVE-2024-44963 수정 여부를 대조하세요.