🇰🇷 한글 설명
Linux 커널의 blk-cgroup 구성 요소에서 blkcg_maybe_throttle_current() 함수 호출 중 오류가 발생할 경우 디스크 참조를 해제하지 못하는 메모리 누수 취약점이 발견되었습니다. 이는 request_queue를 gendisk로 변환하는 과정에서 기존의 참조 해제 코드가 누락되어 발생했습니다.
💡 쉬운 설명
시스템이 디스크 사용량을 조절하는 과정에서 오류가 나면, 사용이 끝난 디스크 정보를 메모리에서 지우지 못하고 계속 붙잡고 있는 문제입니다. 이 문제가 반복되면 시스템의 메모리 자원이 점차 고갈될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
blk-cgroup: fix disk reference leak in blkcg_maybe_throttle_current()
Add the missing put_disk() on the error path in
blkcg_maybe_throttle_current(). When blkcg lookup, blkg lookup, or
blkg_tryget() fails, the function jumps to the out label which only
calls rcu_read_unlock() but does not release the disk reference acquired
by blkcg_schedule_throttle() via get_device(). Since current->throttle_disk
is already set to NULL before the lookup, blkcg_exit() cannot release
this reference either, causing the disk to never be freed.
Restore the reference release that was present as blk_put_queue() in the
original code but was inadvertently dropped during the conversion from
request_queue to gendisk.
📍 영향받는 시스템
Linux kernel (blk-cgroup 관련 모듈을 사용하는 시스템)
⚔️ 공격 벡터
직접적인 공격보다는 시스템 운영 중 특정 오류 경로를 반복적으로 유발하여 메모리 자원을 고갈시키는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인하십시오.