🇰🇷 한글 설명
Linux 커널의 BTRFS 파일 시스템에서 Zoned 파일 시스템 사용 시 데이터 재배치(data relocation) 과정 중 데드락이 발생할 수 있는 취약점입니다. 재배치 작업이 공간을 확보하기 위해 티켓을 기다리지만, 정작 공간을 확보해야 할 작업이 재배치 프로세스에 묶여 있어 무한 대기 상태에 빠지는 문제입니다. 이를 해결하기 위해 Zoned 재배치 전용 플러시 상태를 도입하여 데드락 사이클을 방지했습니다.
💡 쉬운 설명
특정 저장 장치 방식(Zoned)을 사용할 때, 파일을 정리하는 과정에서 시스템이 서로의 작업이 끝나기만을 기다리며 멈춰버리는 현상이 발생할 수 있습니다. 이로 인해 시스템이 응답하지 않는 상태가 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
btrfs: zoned: fix deadlock waiting for ticket during data relocation
When performing data relocation on a zoned filesystem, BTRFS can deadlock
in handle_reserve_tickets(). The relocation process is waiting on a space
reservation ticket that can never be fulfilled, because the relocation
itself is the operation responsible for freeing up that space.
Fix this by introducing a new flush state,
BTRFS_RESERVE_FLUSH_ZONED_RELOCATION, specifically for data chunk
allocation during zoned relocation. Like
BTRFS_RESERVE_FLUSH_FREE_SPACE_INODE, this state uses
priority_reclaim_data_space() instead of the normal flushing path, which
avoids re-entering the relocation code and breaking the deadlock cycle.
In btrfs_alloc_data_chunk_ondemand(), select this new flush state when the
inode belongs to a data relocation root on a zoned filesystem.
📍 영향받는 시스템
Zoned 파일 시스템을 사용하는 Linux 커널 기반 시스템 (BTRFS 사용 시)
⚔️ 공격 벡터
직접적인 외부 공격보다는 특정 파일 시스템 작업(데이터 재배치)을 유도하여 시스템을 멈추게 하는 서비스 거부(DoS) 형태의 공격이 가능합니다.
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트해야 합니다.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 수정된 최신 버전인지 확인합니다.