🇰🇷 한글 설명
Linux 커널의 mm/hugetlb 구성 요소에서 메모리 할당 실패(ENOMEM) 시 vma_add_reservation을 호출하여 발생하는 취약점입니다. 메모리 할당 실패 시 적절한 예외 처리가 이루어지지 않아 시스템의 메모리 관리 상태가 불일치할 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리를 예약하는 과정에서 메모리가 부족할 때, 예약이 제대로 안 되었음에도 예약된 것처럼 처리되어 시스템 오류가 발생할 수 있는 문제입니다. 이로 인해 시스템이 불안정해지거나 예상치 못한 동작을 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/hugetlb: do not call vma_add_reservation upon ENOMEM
sysbot reported a splat [1] on __unmap_hugepage_range(). This is because
vma_needs_reservation() can return -ENOMEM if
allocate_file_region_entries() fails to allocate the file_region struct
for the reservation.
Check for that and do not call vma_add_reservation() if that is the case,
otherwise region_abort() and region_del() will see that we do not have any
file_regions.
If we detect that vma_needs_reservation() returned -ENOMEM, we clear the
hugetlb_restore_reserve flag as if this reservation was still consumed, so
free_huge_folio() will not increment the resv count.
[1] https://lore.kernel.org/linux-mm/
[email protected]/T/#ma5983bc1ab18a54910da83416b3f89f3c7ee43aa
📍 영향받는 시스템
Linux Kernel (hugetlb 관련 모듈을 사용하는 시스템)
⚔️ 공격 벡터
메모리 부족 상황을 유도하여 커널의 메모리 관리 로직 오류를 일으키는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인하십시오.