🇰🇷 한글 설명
리눅스 커널의 mm/page_owner 구성 요소에서 TOCTOU(Time-of-Check to Time-of-Use) 취약점이 발견되었습니다. print_page_owner_memcg() 함수가 페이지 데이터를 재검증하는 과정에서 동시성 문제가 발생하여, 특정 조건에서 커널 패닉(VM_BUG_ON)을 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리를 관리하는 과정에서 데이터가 바뀌는 찰나의 순간을 이용해 시스템이 충돌할 수 있는 오류입니다. 이 오류가 발생하면 운영체제가 갑자기 멈추거나 재부팅될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/page_owner: use memcg_data snapshot to avoid TOCTOU in print_page_owner_memcg()
print_page_owner_memcg() reads page->memcg_data via READ_ONCE() at the
start to guard against tail pages and NULL data. However, it later
re-reads page->memcg_data locklessly in two places:
1: page_memcg_check(page)
2: PageMemcgKmem(page) (via folio_memcg_kmem(), which includes
VM_BUG_ON assertions for tail pages and MEMCG_DATA_OBJEXTS)
If the page is concurrently freed and reallocated as a THP tail page or
slab page between these calls, the VM_BUG_ON assertions can trigger on
CONFIG_DEBUG_VM=y builds, crashing the kernel.
Fix both TOCTOU issues by using the memcg_data snapshot throughout.
📍 영향받는 시스템
Linux Kernel (CONFIG_DEBUG_VM=y 설정이 활성화된 빌드)
⚔️ 공격 벡터
메모리 해제와 재할당이 동시에 일어나는 정교한 타이밍 공격을 통해 커널 충돌 유도
🛡️ 대응 방법
해당 취약점이 수정된 최신 리눅스 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 버전인지 배포판 보안 공지를 통해 확인