🇰🇷 한글 설명
Linux 커널의 dm-thin 구성 요소 내 rebalance_children 함수에서 메타데이터 참조 횟수(refcount) 언더플로우 취약점이 발견되었습니다. Btree 노드가 공유될 때 자식 노드의 참조 횟수를 적절히 증가시키지 않아, 실제 포인터 수와 참조 횟수가 일치하지 않게 됩니다. 이로 인해 'device mapper: space map common: unable to decrement block' 오류가 발생할 수 있습니다.
💡 쉬운 설명
데이터를 관리하는 장부의 숫자가 실제 데이터 개수와 맞지 않게 되어 발생하는 오류입니다. 이로 인해 시스템이 저장 공간을 제대로 관리하지 못하고 오류를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
dm-thin: fix metadata refcount underflow
There's a bug in dm-thin in the function rebalance_children. If the
internal btree node has one entry, the code tries to copy all btree
entries from the node's child to the node itself and then decrement the
child's reference count.
If the child node is shared (it has reference count > 1), we won't free
it, so there would be two pointers to each of the grandchildren nodes.
But the reference counts of the grandchildren is not increased, thus the
reference count doesn't match the number of pointers that point to the
grandchildren. This results in "device mapper: space map common: unable
to decrement block" errors.
Fix this bug by incrementing reference counts on the grandchildren if the
btree node is shared.
📍 영향받는 시스템
dm-thin 모듈을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 시스템에서 dm-thin의 btree 구조를 조작하여 참조 횟수 불일치를 유도
🛡️ 대응 방법
dm-thin의 메타데이터 참조 횟수 관리 로직이 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전인지 배포판 보안 공지를 통해 확인