🇰🇷 한글 설명
Linux 커널의 DAMON(Data Access Monitor) 모듈에서 가상 주소 공간 작업 중 pte_offset_map_lock() 호출 실패 시 무한 루프가 발생할 수 있는 취약점이 발견되었습니다. CPU 핫플러깅과 DAMON이 동시에 실행될 때 PMD 마이그레이션 엔트리로 인해 페이지 테이블 탐색이 반복되어 소프트 락업(soft lockup) 현상이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리를 관리하는 기능이 특정 상황에서 무한 반복 작업에 빠져 시스템이 멈추는 현상입니다. CPU 설정 변경과 메모리 모니터링 기능이 동시에 작동할 때 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/damon/vaddr: do not repeat pte_offset_map_lock() until success
DAMON's virtual address space operation set implementation (vaddr) calls
pte_offset_map_lock() inside the page table walk callback function. This
is for reading and writing page table accessed bits. If
pte_offset_map_lock() fails, it retries by returning the page table walk
callback function with ACTION_AGAIN.
pte_offset_map_lock() can continuously fail if the target is a pmd
migration entry, though. Hence it could cause an infinite page table walk
if the migration cannot be done until the page table walk is finished.
This indeed caused a soft lockup when CPU hotplugging and DAMON were
running in parallel.
Avoid the infinite loop by simply not retrying the page table walk. DAMON
is promising only a best-effort accuracy, so missing access to such pages
is no problem.
📍 영향받는 시스템
Linux Kernel (DAMON 모듈을 사용하는 버전)
⚔️ 공격 벡터
로컬 공격자가 CPU 핫플러깅과 DAMON 기능을 동시에 트리거하여 시스템 서비스 거부(DoS) 유발 가능
🛡️ 대응 방법
DAMON의 페이지 테이블 탐색 로직을 수정하여 실패 시 재시도하지 않도록 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인