🇰🇷 한글 설명
리눅스 커널의 메모리 관리(mm) 과정에서 오류 발생 시 일부 PFN(Page Frame Number) 매핑이 제대로 해제되지 않는 취약점입니다. 이로 인해 물리 메모리 저장소가 페이지 테이블보다 먼저 해제되어, 페이지 테이블에 유효하지 않은 PTE(Page Table Entry)가 남아있는 상태가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 메모리를 정리하는 과정에서 실수로 흔적을 남겨두는 문제입니다. 이 흔적 때문에 나중에 다른 데이터가 잘못된 메모리 영역에 접근할 수 있는 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm: avoid leaving partial pfn mappings around in error case
As Jann points out, PFN mappings are special, because unlike normal
memory mappings, there is no lifetime information associated with the
mapping - it is just a raw mapping of PFNs with no reference counting of
a 'struct page'.
That's all very much intentional, but it does mean that it's easy to
mess up the cleanup in case of errors. Yes, a failed mmap() will always
eventually clean up any partial mappings, but without any explicit
lifetime in the page table mapping itself, it's very easy to do the
error handling in the wrong order.
In particular, it's easy to mistakenly free the physical backing store
before the page tables are actually cleaned up and (temporarily) have
stale dangling PTE entries.
To make this situation less error-prone, just make sure that any partial
pfn mapping is torn down early, before any other error handling.
📍 영향받는 시스템
PFN 매핑을 사용하는 리눅스 커널 버전 (패치 적용 전 버전)
⚔️ 공격 벡터
메모리 매핑(mmap) 과정에서 의도적으로 오류를 유발하여 잘못된 메모리 참조를 유도하는 방식
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 버전인지 확인하십시오.