🇰🇷 한글 설명
리눅스 커널의 페이지 테이블 관리 과정에서 특수한 제로 매핑(zero mappings)을 적절히 처리하지 못하는 취약점이 발견되었습니다. 권한이 없는 프로세스가 다량의 제로 매핑을 생성할 경우 file_map_count가 오버플로되어 커널의 BUG_ON() 조건에 도달할 수 있습니다.
💡 쉬운 설명
컴퓨터 메모리를 관리하는 규칙에 오류가 있어, 특정 작업을 반복하면 시스템이 오류를 일으키며 멈출 수 있습니다. 일반 사용자도 이 규칙의 허점을 이용해 시스템에 문제를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/page_table_check: skip special zero mappings
page_table_check_set() and page_table_check_clear() account mappings based
on PageAnon(). Shared zero-page PTEs and huge zero PMDs are special
mappings, but page_table_check can still account them as file-backed
pages.
An unprivileged process can populate enough zero mappings to overflow
file_map_count and hit the existing BUG_ON(). The PTE path can do this
with the shared zero page, and the PMD path can do the same with huge zero
mappings.
Skip special zero mappings in the user page-table accounting paths. Keep
the PTE-side pte_special() check, and identify huge zero PMDs from the
mapped folio instead of pmd_special(). That covers architectures where
pmd_special() is a no-op without adding huge_zero_pfn checks to the
generic counter helpers.
📍 영향받는 시스템
Linux Kernel (특수 제로 매핑 처리가 누락된 버전)
⚔️ 공격 벡터
권한이 없는 로컬 프로세스가 특수한 제로 페이지(PTE/PMD)를 대량으로 생성하여 카운터 오버플로 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 페이지 테이블 계정 로직 수정 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인