🇰🇷 한글 설명
Linux 커널의 btrfs 파일시스템에서 sb_write_pointer() 함수가 read_cache_page_gfp()로 슈퍼블록을 읽을 때, BLKBSZSET(블록 크기 변경)과의 경쟁 조건(race condition)이 발생할 수 있습니다. 이를 막기 위해 해당 읽기 작업 주변에 mapping invalidate lock을 적용하여 블록 크기 변경과 직렬화하도록 수정되었습니다.
💡 쉬운 설명
리눅스 커널의 btrfs 파일시스템이 디스크 정보를 읽는 도중 블록 크기가 동시에 바뀌면 잘못된 데이터를 읽을 수 있는 문제가 있었습니다. 이 업데이트는 읽기와 변경이 동시에 일어나지 않도록 잠금을 추가해 문제를 해결합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
btrfs: protect sb_write_pointer() with invalidate lock
sb_write_pointer() reads the super block from the block device page cache
using read_cache_page_gfp(). This has the same race with BLKBSZSET as the
one fixed by commit 3f29d661e568 ("btrfs: sync read disk super and set
block size").
Take the mapping invalidate lock around read_cache_page_gfp() to
serialize the read against block size changes.
📍 영향받는 시스템
btrfs 파일시스템을 사용하는 Linux 커널 (수정 커밋 이전 버전), 공식 CVSS 점수 미부여 상태
⚔️ 공격 벡터
공개된 정보상 원격 공격 경로는 명시되지 않았으며, 블록 디바이스 블록 크기 변경과의 경쟁 조건을 이용하는 로컬 시나리오로 추정됩니다.
🛡️ 대응 방법
사용 중인 배포판의 Linux 커널을 btrfs 수정이 포함된 최신 안정 버전으로 업데이트하고 재부팅합니다.
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 Linux 커널 git 로그에서 해당 수정 커밋이 포함된 버전과 비교하여, 같거나 높으면 패치가 적용된 것으로 판단합니다.