🇰🇷 한글 설명
리눅스 커널의 mm/huge_memory 구성 요소에서 folio 분할 시 workingset 상태가 제대로 초기화되지 않는 취약점이 발견되었습니다. 이로 인해 메모리 제어 그룹(memcg)에 할당된 xa_node가 매핑의 shadow_nodes 리스트에 연결되지 않아, 메모리 회수 과정에서 커널 경고(VM_WARN_ON)를 발생시킬 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리를 관리하는 과정에서 데이터 조각을 나누는 규칙이 제대로 적용되지 않는 문제입니다. 이로 인해 시스템이 메모리를 정리할 때 오류를 감지하고 경고를 보낼 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/huge_memory: initialise workingset state before folio split
xas_try_split() adds __GFP_ACCOUNT for page-cache xa_nodes, but
__folio_split() leaves the xa_state's xa_lru unset. That lets a live,
memcg-charged xa_node exist without being linked into the mapping's
shadow_nodes list_lru; when reclaim later walks the list_lru it trips
VM_WARN_ON(!css_is_dying()).
Use mapping_set_update() to install both the workingset update callback
and the shadow_nodes list_lru on the xa_state.
📍 영향받는 시스템
Linux Kernel (mm/huge_memory 관련 모듈 사용 시스템)
⚔️ 공격 벡터
로컬 공격자가 메모리 할당 및 분할을 유도하여 커널 경고를 발생시키거나 시스템 불안정을 유도할 수 있음
🛡️ 대응 방법
mapping_set_update()를 사용하여 xa_state의 workingset 콜백과 shadow_nodes 리스트를 올바르게 설정한 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인