🇰🇷 한글 설명
Linux 커널의 blk-cgroup 구성 중 radix_tree_insert 실패 시 발생하는 메모리 누수 및 상태 플래그 오류에 대한 취약점입니다. 오류 경로에서 percpu_ref_kill()이 호출되지 않아 참조 카운트가 정상적으로 해제되지 않으며, 이로 인해 cgroup 관련 자원이 영구적으로 누수됩니다.
💡 쉬운 설명
리눅스 시스템의 특정 기능을 설정하다가 오류가 발생하면, 사용하던 메모리를 제대로 돌려주지 않고 계속 붙잡고 있는 문제입니다. 이 문제가 반복되면 시스템의 메모리가 점차 부족해져 결국 시스템이 느려지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
blk-cgroup: fix leaks and online flag on radix_tree_insert failure
When radix_tree_insert() fails in blkg_create(), the error path has two
issues:
1. blkg->online is set to true unconditionally, even when the blkg was
never fully inserted. Move the assignment inside the success block.
2. The error path calls blkg_put() without first calling
percpu_ref_kill(). Because the refcount is still in percpu mode,
percpu_ref_put() only does this_cpu_sub() without checking for zero,
so blkg_release() is never triggered. This permanently leaks the
blkg memory, its percpu iostat, policy data, the parent blkg
reference, and the cgroup css reference — the latter preventing the
cgroup from ever being destroyed.
Fix by replacing blkg_put() with percpu_ref_kill(), matching the pattern
used in blkg_destroy().
📍 영향받는 시스템
Linux kernel (blk-cgroup 관련 모듈을 사용하는 버전)
⚔️ 공격 벡터
로컬 공격자가 특정 조건에서 blk-cgroup 생성 실패를 유도하여 시스템 자원을 고갈시키는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인하십시오.
💻 영향받는 소프트웨어
NVIDIA Cloud Gaming Guest Driver for Linux