🇰🇷 한글 설명
Linux 커널의 mm/memory_hotplug 구성 요소에서 오류 처리 경로 중 altmap 매개변수를 잘못 전달하는 취약점이 발견되었습니다. 이로 인해 vmemmap 페이지가 잘못된 방식으로 해제되어 시스템 버디 할당자에 소유되지 않은 페이지가 주입될 수 있으며, 이는 메모리 오염이나 머신 체크 오류를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리를 관리하는 과정에서 오류가 발생했을 때, 사용 중이던 메모리 정보를 제대로 정리하지 못하는 버그입니다. 이로 인해 시스템이 이미 사용 중인 메모리를 다시 사용하려고 시도하면서 컴퓨터가 멈추거나 데이터가 망가질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/memory_hotplug: fix incorrect altmap passing in error path
In create_altmaps_and_memory_blocks(), when arch_add_memory() succeeds
with memmap_on_memory enabled, the vmemmap pages are allocated from
params.altmap. If create_memory_block_devices() subsequently fails, the
error path calls arch_remove_memory() with a NULL altmap instead of
params.altmap.
This is a bug that could lead to memory corruption. Since altmap is NULL,
vmemmap_free() falls back to freeing the vmemmap pages into the system
buddy allocator via free_pages() instead of the altmap.
arch_remove_memory() then immediately destroys the physical linear mapping
for this memory. This injects unowned pages into the buddy allocator,
causing machine checks or memory corruption if the system later attempts
to allocate and use those freed pages.
Fix this by passing params.altmap to arch_remove_memory() in the error
path.
📍 영향받는 시스템
Linux Kernel (mm/memory_hotplug 모듈을 사용하는 시스템)
⚔️ 공격 벡터
직접적인 외부 공격보다는 메모리 핫플러그 작업 중 특정 오류 상황을 유도하여 발생할 수 있는 로컬/시스템 내부적 취약점입니다.
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 arch_remove_memory() 호출 시 올바른 altmap이 전달되도록 수정해야 합니다.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 수정된 패치 버전 이상인지 확인합니다.