🇰🇷 한글 설명
Linux 커널의 btrfs qgroup 모듈 내 qgroup_free_reserved_data() 함수에서 데이터 길이 계산 오류가 발견되었습니다. 시작 위치와 종료 위치를 정렬하는 과정에서 실제 길이보다 훨씬 큰 값이 계산되어 잘못된 메모리 주소를 참조할 수 있는 취약점입니다.
💡 쉬운 설명
파일 시스템의 저장 공간을 계산할 때 숫자를 잘못 계산하여 실제보다 훨씬 큰 공간을 사용한다고 착각하는 오류가 있습니다. 이로 인해 시스템이 잘못된 위치의 데이터를 건드릴 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
btrfs: qgroup: fix a wrong length calculation in qgroup_free_reserved_data()
In that function, we round down the start position and round up the
ending position.
But during the calculation of @len, we use "round_up(start + len,
sectorsize)", which is the rounded up end position, not the rounded up
length.
Which results a much larger length, and later we are still using
"start + len", which is completely incorrect.
Fix it by declaring a local @aligned_start and @aligned_len and use them
instead.
📍 영향받는 시스템
btrfs qgroup 기능을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 권한을 가진 사용자가 btrfs 파일 시스템의 qgroup 관련 작업을 수행하여 발생 가능
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 취약점이 해결된 패치 버전인지 확인