🇰🇷 한글 설명
Linux 커널의 btrfs 파일 시스템에서 create_space_info_sub_group() 함수 실행 중 오류가 발생할 경우 메모리가 중복 해제되는 Double Free 취약점이 발견되었습니다. kobject_init_and_add() 실패 시 kobject_put()에 의해 이미 해제된 메모리를 다시 해제하려고 시도하여 시스템 불안정성을 초래할 수 있습니다.
💡 쉬운 설명
컴퓨터가 사용하던 메모리 공간을 정리하는 과정에서 이미 치운 공간을 한 번 더 치우려고 시도하는 오류입니다. 이 과정에서 시스템이 충돌하거나 예상치 못한 동작을 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
btrfs: fix double free in create_space_info_sub_group() error path
When kobject_init_and_add() fails, the call chain is:
create_space_info_sub_group()
-> btrfs_sysfs_add_space_info_type()
-> kobject_init_and_add()
-> failure
-> kobject_put(&sub_group->kobj)
-> space_info_release()
-> kfree(sub_group)
Then control returns to create_space_info_sub_group(), where:
btrfs_sysfs_add_space_info_type() returns error
-> kfree(sub_group)
Thus, sub_group is freed twice.
Keep parent->sub_group[index] = NULL for the failure path, but after
btrfs_sysfs_add_space_info_type() has called kobject_put(), let the
kobject release callback handle the cleanup.
📍 영향받는 시스템
btrfs 파일 시스템을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 공격자가 특정 오류 경로를 유도하여 커널 메모리 오염 및 시스템 중단을 유발할 수 있음
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 수정된 버전이 적용되었는지 확인합니다.