🇰🇷 한글 설명
Linux 커널의 snapshot_page() 함수에서 order-1 folio 처리 시 잘못된 메모리 영역인 __page_2를 참조하여 발생하는 취약점입니다. vmemmap 섹션 끝에 위치한 메모리 접근 시 존재하지 않는 영역을 읽으려 시도하여 시스템 오류(oops)를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터가 메모리를 관리하는 과정에서 실제 존재하지 않는 메모리 주소를 읽으려고 시도하여 시스템이 멈추거나 오류가 발생하는 문제입니다. 특히 특정 대용량 메모리 환경에서 메모리 설정이 변경될 때 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/util: don't read __page_2 for order-1 folios in snapshot_page()
snapshot_page() currently reads __page_2 after checking nr_pages > 1, but
it should only do so when nr_pages > 2.
If an order-1 folio is allocated at the end of a vmemmap section,
__page_2 will not exist and reading it will cause a fault.
During DLPAR memory remove on a 22 TB ppc64le LPAR, snapshot_page() oopsed
on the page isolation path while reading an order-1 folio's __page_2 from
an adjacent absent section (unmapped vmemmap).
Fix this to avoid reading memmap that doesn't exist (e.g., a vmemmap
hole).
📍 영향받는 시스템
Linux Kernel (vmemmap 섹션 끝에 order-1 folio가 할당될 수 있는 환경)
⚔️ 공격 벡터
메모리 제거(DLPAR)와 같은 특정 메모리 구성 변경 작업 중 시스템 오류 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 snapshot_page() 함수의 로직 수정 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.