🇰🇷 한글 설명
Linux 커널의 bcache 구성 요소에서 btree_iter 사용 시 배열 범위를 벗어나는 인덱스 참조 오류가 발견되었습니다. 동적 크기로 할당된 반복자가 고정 크기 배열을 참조할 때 발생하는 이 문제는 메모리 오염을 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터가 데이터를 찾기 위해 사용하는 목록의 크기를 잘못 계산하여, 정해진 범위를 넘어서는 잘못된 메모리 영역을 건드리는 문제입니다. 이로 인해 시스템이 불안정해지거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bcache: fix variable length array abuse in btree_iter
btree_iter is used in two ways: either allocated on the stack with a
fixed size MAX_BSETS, or from a mempool with a dynamic size based on the
specific cache set. Previously, the struct had a fixed-length array of
size MAX_BSETS which was indexed out-of-bounds for the dynamically-sized
iterators, which causes UBSAN to complain.
This patch uses the same approach as in bcachefs's sort_iter and splits
the iterator into a btree_iter with a flexible array member and a
btree_iter_stack which embeds a btree_iter as well as a fixed-length
data array.
📍 영향받는 시스템
bcache 모듈을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 시스템에서 특수하게 조작된 bcache 설정 또는 입력을 통해 메모리 범위를 초과하는 접근 유도
🛡️ 대응 방법
bcache의 btree_iter 구조를 유연한 배열 멤버(flexible array member)를 사용하도록 수정한 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인