🇰🇷 한글 설명
Linux 커널의 blk-cgroup 구성 요소에서 blkg_iostat_set 구조체의 blkg 및 sync 필드가 적절히 초기화되지 않는 취약점이 발견되었습니다. 이로 인해 blkcg_reset_stats() 호출 시 NULL 포인터 참조가 발생하여 커널 패닉(시스템 중단)이 일어날 수 있습니다.
💡 쉬운 설명
리눅스 시스템의 데이터 처리 통계 정보를 관리하는 과정에서 초기화되지 않은 데이터가 사용되어 시스템이 갑자기 멈출 수 있는 문제입니다. 이는 시스템의 안정성을 해치고 서비스 중단을 야기할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
blk-cgroup: Reinit blkg_iostat_set after clearing in blkcg_reset_stats()
When blkg_alloc() is called to allocate a blkcg_gq structure
with the associated blkg_iostat_set's, there are 2 fields within
blkg_iostat_set that requires proper initialization - blkg & sync.
The former field was introduced by commit 3b8cc6298724 ("blk-cgroup:
Optimize blkcg_rstat_flush()") while the later one was introduced by
commit f73316482977 ("blk-cgroup: reimplement basic IO stats using
cgroup rstat").
Unfortunately those fields in the blkg_iostat_set's are not properly
re-initialized when they are cleared in v1's blkcg_reset_stats(). This
can lead to a kernel panic due to NULL pointer access of the blkg
pointer. The missing initialization of sync is less problematic and
can be a problem in a debug kernel due to missing lockdep initialization.
Fix these problems by re-initializing them after memory clearing.
📍 영향받는 시스템
Linux Kernel (blk-cgroup 관련 기능이 활성화된 버전)
⚔️ 공격 벡터
로컬 공격자가 특정 블록 장치 제어 그룹(blk-cgroup) 통계를 재설정하도록 유도하여 커널 패닉 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인