🇰🇷 한글 설명
Linux 커널의 PCI/P2PDMA 구성 중 vm_insert_page() 함수가 실패할 경우, 할당된 per-CPU pgmap 참조를 해제하지 않는 취약점이 발견되었습니다. 이로 인해 PCI 장치를 제거하려는 memunmap_pages() 과정에서 시스템이 무한 대기 상태(Hang)에 빠질 수 있습니다.
💡 쉬운 설명
컴퓨터 부품을 제거하려고 할 때, 메모리 관리 과정에서 발생한 작은 실수 때문에 시스템이 멈춰버리는 문제입니다. 특정 상황에서 사용 중인 메모리 정보를 제대로 정리하지 못해 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
PCI/P2PDMA: Release per-CPU pgmap ref when vm_insert_page() fails
When vm_insert_page() fails in p2pmem_alloc_mmap(), p2pmem_alloc_mmap()
doesn't invoke percpu_ref_put() to free the per-CPU ref of pgmap acquired
after gen_pool_alloc_owner(), and memunmap_pages() will hang forever when
trying to remove the PCI device.
Fix it by adding the missed percpu_ref_put().
📍 영향받는 시스템
PCI/P2PDMA 기능을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
직접적인 원격 공격보다는 시스템 구성 변경(PCI 장치 제거) 시 발생하는 서비스 거부(DoS) 형태의 취약점입니다.
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전 이후인지 확인하십시오.