🇰🇷 한글 설명
Linux 커널의 mm/damon/reclaim 모듈에서 damon_reclaim_init() 함수가 damon_new_ctx()로 할당한 ctx를, damon_select_ops() 실패 시 해제하지 않아 메모리 누수가 발생하는 문제입니다. 실패 경로에서 damon_destroy_ctx()를 호출하여 수정되었습니다.
💡 쉬운 설명
커널이 메모리를 빌린 뒤 일이 실패했을 때 그 메모리를 돌려주지 않아 점점 메모리가 새어 나가는 버그입니다. 시스템이 오래 돌면 메모리가 부족해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/damon/reclaim: fix potential memory leak in damon_reclaim_init()
damon_reclaim_init() allocates a memory chunk for ctx with
damon_new_ctx(). When damon_select_ops() fails, ctx is not released,
which will lead to a memory leak.
We should release the ctx with damon_destroy_ctx() when damon_select_ops()
fails to fix the memory leak.
📍 영향받는 시스템
DAMON reclaim 기능을 포함하는 Linux 커널 (수정 커밋 이전 버전)
⚔️ 공격 벡터
로컬 권한이 있는 사용자가 해당 초기화 실패 경로를 반복적으로 유발하여 커널 메모리를 소진시키는 서비스 거부(DoS) 형태로 악용될 수 있습니다.
🛡️ 대응 방법
배포판에서 제공하는 최신 커널 업데이트를 적용하여 재부팅하고, DAMON reclaim 기능을 사용하지 않는다면 해당 모듈을 비활성화합니다.
🔧 검증 코드
커널 버전이 패치가 포함된 배포판 업데이트 버전인지 확인하고, CONFIG_DAMON_RECLAIM=y 또는 =m이면 기능이 빌드되어 있으므로 영향 대상이며, 설정이 없거나 not set이면 해당 없음입니다.
uname -r; grep -E 'CONFIG_DAMON_RECLAIM' /boot/config-$(uname -r) 2>/dev/null