🇰🇷 한글 설명
Linux 커널의 DAMON 구성 요소에서 잘못된 NUMA 노드 ID(target_nid)가 지정될 경우, 격리된 폴리오(folio)가 LRU 리스트로 복구되지 않는 취약점이 발견되었습니다. 이로 인해 메모리 참조 횟수가 제대로 관리되지 않아 메모리 누수 및 페이지 고정 현상이 발생할 수 있습니다.
💡 쉬운 설명
메모리를 관리하는 과정에서 특정 오류가 발생하면, 사용 중인 메모리가 시스템에 다시 반환되지 않고 갇혀버리는 문제입니다. 이로 인해 컴퓨터의 메모리가 점점 부족해지거나 시스템 성능이 저하될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/damon/ops-common: putback folios on invalid migrate nid
damon_pa_migrate() and damos_va_migrate() isolate folios into a local list
and then call damon_migrate_pages(). When target_nid is invalid
(including the scheme default NUMA_NO_NODE / -1), damon_migrate_pages()
returns early without putting the folios back to the LRU.
Callers then discard the list head while those folios remain isolated with
an extra reference taken by folio_isolate_lru(). The pages stay off the
LRU for as long as the mapping exists (anon active+inactive counts drop
while RSS does not), and the leftover references can pin the pages after
the mapping is gone.
Put the folios back on the invalid-nid path so ignored migration requests
still return them to the LRU.
📍 영향받는 시스템
Linux kernel (DAMON 기능이 활성화된 버전)
⚔️ 공격 벡터
로컬 공격자가 잘못된 NUMA 노드 설정을 통해 메모리 자원을 고갈시키는 방식
🛡️ 대응 방법
DAMON 관련 메모리 관리 로직이 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 수정된 패치가 적용된 버전인지 확인합니다.