🇰🇷 한글 설명
리눅스 커널의 mm/mm_init 구성 요소에서 per-cpu 노드 통계 할당 실패 시 이를 적절히 처리하지 못하는 취약점이 발견되었습니다. 할당 실패를 확인하지 않아 NULL 포인터 역참조가 발생할 수 있으며, 이를 해결하기 위해 -ENOMEM 오류를 상위로 전달하고 재시도가 가능하도록 수정되었습니다.
💡 쉬운 설명
컴퓨터의 핵심 운영체제인 리눅스에서 메모리를 할당하다가 실패했을 때, 이를 제대로 확인하지 않고 잘못된 주소를 참조하여 시스템이 멈출 수 있는 문제입니다. 패치를 통해 메모리 할당 실패 시 시스템이 안전하게 오류를 처리하고 나중에 다시 시도할 수 있도록 개선되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/mm_init: handle alloc_percpu failure in free_area_init_core_hotplug
We miss a failed allocation check for pgdat->per_cpu_nodestats, which
results in a NULL deref when we offset into the per-cpu area.
Propagate -ENOMEM up the stack and leave per_cpu_nodestats pointing
at boot_nodestats so a later online can retry the allocation.
hotadd_init_pgdat() returns NULL on failure, which __try_online_node()
already maps to -ENOMEM.
On failure nothing needs to be unwound:
- the node is never marked online
- per_cpu_nodestats is left pointing at boot_nodestats
- __add_memory_resource() cleans up pending memblock resources
- later online attempts retry the per_cpu_nodestats allocation
📍 영향받는 시스템
Linux Kernel (mm/mm_init 관련 모듈 사용 버전)
⚔️ 공격 벡터
메모리 할당 실패를 유도하는 특수한 상황에서의 시스템 오류 유발 (로컬/시스템 레벨)
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.