🇰🇷 한글 설명
리눅스 커널의 mm/hugetlb 구성 요소에서 거대 부트메모리(gigantic bootmem) HugeTLB 페이지 구조체가 너무 늦게 초기화되는 취약점이 발견되었습니다. 이로 인해 존 연속성(zone contiguity) 계산 시 초기화되지 않은 페이지 구조체를 참조하여 잘못된 상태를 계산하거나 부팅 중 패닉을 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터가 켜질 때 메모리를 관리하는 준비 과정에서, 아직 준비되지 않은 메모리 정보를 미리 읽으려다 오류가 발생하는 문제입니다. 이로 인해 시스템이 잘못된 정보를 갖게 되거나 부팅 중에 갑자기 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/hugetlb: initialize gigantic bootmem hugepage struct pages earlier
Gigantic bootmem HugeTLB pages are currently initialized from
hugetlb_init(), but page_alloc_init_late() runs earlier and walks
pageblocks to determine zone contiguity.
If a bootmem HugeTLB region is marked noinit, set_zone_contiguous() can
observe still-uninitialized struct pages through
__pageblock_pfn_to_page(). This may not trigger an immediate failure, but
it can make set_zone_contiguous() compute the wrong zone contiguity state.
If extra poisoned-page checks are added in this path, such as
PF_POISONED_CHECK() in page_zone_id(), it can also trigger an early boot
panic.
Initialize gigantic bootmem HugeTLB struct pages from
page_alloc_init_late(), before zone contiguity is evaluated, so later page
allocator setup only sees valid struct page state. This also makes the
initialization order more natural, as struct pages should be initialized
before later code inspects them.
📍 영향받는 시스템
Linux Kernel (gigantic bootmem HugeTLB 관련 모듈 사용 시스템)
⚔️ 공격 벡터
로컬 공격자가 시스템 부팅 단계의 메모리 초기화 순서를 조작하거나 특정 메모리 상태를 유도하여 시스템 중단을 유발할 수 있음
🛡️ 대응 방법
해당 취약점이 수정된 최신 리눅스 커널 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전 이후인지 확인하십시오.