🇰🇷 한글 설명
Linux 커널의 btrfs 파일 시스템에서 Merkle 트리 읽기 시 최신 상태가 아닌 folio를 발견하면 이를 읽기 오류(-EIO)로 처리하는 취약점이 있습니다. 이로 인해 일시적인 읽기 실패가 발생한 후 해당 데이터가 계속 오류 상태로 남아 재시도 없이 실패가 지속될 수 있습니다.
💡 쉬운 설명
파일 시스템이 데이터를 읽을 때 일시적인 오류가 발생하면, 이후에 다시 읽으려고 해도 계속해서 오류가 발생하는 문제가 있습니다. 이 패치는 오류가 발생했을 때 포기하지 않고 다시 읽기를 시도하도록 수정하여 데이터 읽기 안정성을 높입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
btrfs: retry verity reads for not-uptodate Merkle folios
btrfs_read_merkle_tree_page() can find a folio in the mapping that is not
uptodate. After taking the folio lock, the current code treats that state
as a read error and returns -EIO.
That can make a previous transient read failure sticky. If the failed read
left a not-uptodate folio in the mapping, later callers find that folio and
fail instead of retrying the read.
Keep the existing page-cache insertion and locking order, but retry the
Merkle item read when a not-uptodate folio is found in the mapping. Also
unlock the folio when read_key_bytes() fails so that a later caller can
lock it and retry the read.
📍 영향받는 시스템
Linux kernel (btrfs 파일 시스템을 사용하는 시스템)
⚔️ 공격 벡터
직접적인 공격 벡터는 없으나, 일시적인 읽기 오류를 유도하여 파일 시스템의 가용성을 저해할 수 있음
🛡️ 대응 방법
btrfs 관련 수정 사항이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인