CVE-2026-64295 in Linux
요약
\~에 의해 VulDB • 2026. 07. 26.
리눅스 커널에서 다음 취약점이 해결되었습니다:
mm: page_ext: 유효하지 않은 PFN 접근을 방지하기 위해 page_ext_iter_next에 카운트 제한 추가
page_ext 반복 API는 이터레이터를 진행할 때 PFN이 여전히 유효한 섹션에 속하는지 여부를 검증하지 않습니다. 핫플러그 경로에서 동적으로 메모리를 추가할 경우, 마지막 유효 섹션의 경계에서 이터레이터 카운트가 __pgcount와 같아질 때 page_ext_lookup 중 NULL 포인터 역참조가 발생할 수 있습니다.
for_each_page_ext() 매크로는 루프 증분으로 page_ext_iter_next()를 호출합니다. for_each_page_ext()는 끝부분에 "__page_ext = page_ext_iter_next(&__iter)"를 수행합니다. 이로 인해 page_ext_iter_next()가 iter->index를 __pgcount보다 크게 증가시키고 page_ext_lookup(start_pfn + __pgcount)을 호출하게 됩니다. 메모리 핫플러그(온라인) 중 start_pfn + __pgcount의 PFN은 아직 초기화되지 않은 섹션에 속할 수 있으며, 이로 인해 page_ext_lookup()이 NULL 포인터 역참조를 트리거합니다.
[ 14.555124][ T846] Call trace:
[ 14.555125][ T846] lookup_page_ext+0x6c/0x108 (P)
[ 14.555127][ T846] page_ext_lookup+0x30/0x3c
[ 14.555129][ T846] __reset_page_owner+0x11c/0x260
[ 14.571201][ T846] __free_pages_ok+0x5e8/0x8e0
[ 14.571204][ T846] __free_pages_core+0x78/0xf0
[ 14.571206][ T846] generic_online_page+0x14/0x24
[ 14.597782][ T846] online_pages+0x178/0x30c
[ 14.597784][ T846] memory_block_change_state+0x284/0x32c
[ 14.597787][ T846] memory_subsys_online+0x4c/0x64
[ 14.597789][ T846] device_online+0x88/0xb0
[ 14.597791][ T846] online_memory_block+0x30/0x40
[ 14.597793][ T846] walk_memory_blocks+0xac/0xe8
[ 14.597794][ T846] add_memory_resource+0x280/0x298
[ 14.656161][ T846] add_memory+0x60/0x98
반복 경계 검증을 이터레이터 함수 내부로 이동하여 호출자가 의도하지 않게 요청된 범위를 벗어난 접근을 하지 않도록 합니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.