🇰🇷 한글 설명
Linux 커널의 btrfs 파일 시스템에서 __extent_writepage 함수가 PageError 비트를 잘못 처리하여 발생하는 취약점입니다. I/O 오류 발생 시 에러 상태가 제출 컨텍스트로 유출되어 에러 처리 책임이 불분명해지는 문제를 해결하기 위한 패치가 적용되었습니다.
💡 쉬운 설명
파일을 저장하는 과정에서 오류가 발생했을 때, 시스템이 이 오류를 제대로 처리하지 못하고 엉뚱한 곳으로 전달하는 문제입니다. 이로 인해 데이터 저장 과정에서 예기치 않은 오류가 발생하거나 시스템 상태가 불안정해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
btrfs: don't check PageError in __extent_writepage
__extent_writepage currenly sets PageError whenever any error happens,
and the also checks for PageError to decide if to call error handling.
This leads to very unclear responsibility for cleaning up on errors.
In the VM and generic writeback helpers the basic idea is that once
I/O is fired off all error handling responsibility is delegated to the
end I/O handler. But if that end I/O handler sets the PageError bit,
and the submitter checks it, the bit could in some cases leak into the
submission context for fast enough I/O.
Fix this by simply not checking PageError and just using the local
ret variable to check for submission errors. This also fundamentally
solves the long problem documented in a comment in __extent_writepage
by never leaking the error bit into the submission context.
📍 영향받는 시스템
btrfs 파일 시스템을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 시스템에서 파일 I/O 오류를 유도하여 에러 상태 유출을 일으키는 방식
🛡️ 대응 방법
최신 보안 패치가 적용된 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.