🇰🇷 한글 설명
리눅스 커널의 BFQ(Budget Fair Queuing) 블록 계층에서 bfq_split_bfqq() 함수 호출 후 waker_bfqq에 접근할 때 발생하는 Use-After-Free(UAF) 취약점입니다. 특정 상황에서 bfqq가 해제된 후 해당 메모리에 접근을 시도하여 시스템 불안정이나 권한 상승을 초래할 수 있습니다.
💡 쉬운 설명
컴퓨터의 데이터를 처리하는 방식 중 하나에서, 이미 삭제된 메모리 공간을 다시 사용하려고 시도할 때 발생하는 오류입니다. 이 오류를 이용하면 해커가 시스템을 멈추게 하거나 제어권을 뺏을 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
block, bfq: fix uaf for accessing waker_bfqq after splitting
After commit 42c306ed7233 ("block, bfq: don't break merge chain in
bfq_split_bfqq()"), if the current procress is the last holder of bfqq,
the bfqq can be freed after bfq_split_bfqq(). Hence recored the bfqq and
then access bfqq->waker_bfqq may trigger UAF. What's more, the waker_bfqq
may in the merge chain of bfqq, hence just recored waker_bfqq is still
not safe.
Fix the problem by adding a helper bfq_waker_bfqq() to check if
bfqq->waker_bfqq is in the merge chain, and current procress is the only
holder.
📍 영향받는 시스템
BFQ 스케줄러를 사용하는 리눅스 커널 버전 (특정 커밋 이후 버전)
⚔️ 공격 벡터
특수하게 조작된 I/O 요청을 통해 BFQ 큐 분할을 유도하여 메모리 해제 후 접근(UAF) 발생
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인합니다.