CVE-2024-46847 in Linux
요약
\~에 의해 VulDB • 2026. 05. 23.
리눅스 커널에서 다음 취약점이 해결되었습니다:
mm: vmalloc: 큐에 추가하기 전에 vmap_block이 초기화되었는지 확인
커밋 8c61291fd850("mm: purge_fragmented_block에서 잘못된 vbq 참조 수정")은 'vmap_block' 구조체에 초기화 중인 CPU의 ID를 할당 시점에 설정하는 'cpu' 필드를 포함하도록 확장했습니다.
new_vmap_block()에서 새 'vmap_block'이 인스턴스화될 때, 'cpu' 필드가 초기화되기 전에 부분적으로 초기화된 구조체가 로컬 'vmap_block_queue' xarray에 추가됩니다. 다른 CPU가 xarray를 동시에 순회하는 경우(예: vm_unmap_aliases()를 통해), 초기화되지 않은 인덱스로 인해 원격 큐에 대한 범위를 벗어난(out-of-bounds) 접근을 수행할 수 있습니다.
이 문제는 Android에서 UBSAN 오류로 관찰되었습니다:
| Internal error: UBSAN: array index out of bounds: 00000000f2005512 [#1] PREEMPT SMP
| | Call trace: | purge_fragmented_block+0x204/0x21c | _vm_unmap_aliases+0x170/0x378 | vm_unmap_aliases+0x1c/0x28 | change_memory_common+0x1dc/0x26c | set_memory_ro+0x18/0x24 | module_enable_ro+0x98/0x238 | do_init_module+0x1b0/0x310
new_vmap_block()에서 'vb->cpu'의 초기화를 xarray에 추가하기 전에 수행합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.