🇰🇷 한글 설명
Linux 커널의 KVM x86 구현에서 섀도우 MMU 페이지를 사용 가능하게 만든 후, 무효하거나 오래된 루트 페이지를 확인하지 않는 취약점이 발견되었습니다. 이로 인해 무효한 루트 페이지를 기반으로 자식 섀도우 페이지가 생성되어, 무효한 페이지가 활성 MMU 페이지 목록에 포함되는 KVM의 불변성을 위반하게 됩니다.
💡 쉬운 설명
컴퓨터의 메모리를 관리하는 과정에서 이미 사용이 중지된 잘못된 정보를 바탕으로 새로운 메모리 관리 규칙이 만들어지는 오류입니다. 이로 인해 시스템의 메모리 관리 체계가 꼬여 보안상 문제가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KVM: x86: Check for invalid/obsolete root *after* making MMU pages available
Check for a "stale" page fault, i.e. for an invalid and/or obsolete root,
after making MMU pages available for the shadow MMU. If reclaiming shadow
pages zaps an in-use root, i.e. marks it invalid, then KVM will attempt to
map memory into an invalid root. On its own, populating an invalid root is
"fine", but because child shadow pages inherit their parent's role, any
children created during the map/fetch will be created as invalid pages,
thus violating KVM's invariant that invalid pages are never on the list of
active MMU pages.
Note, the underlying flaw has existed since KVM first started tracking
invalid roots in 2008 (commit 2e53d63acba7, "KVM: MMU: ignore zapped root
pagetables"), but the true badness only came along in 2020 (Linux 5.9)
with the invariant that invalid shadow pages can't be on the list of
active pages.
Note #2, inheriting role.invalid when creating child shadow pages is also
far from ideal; that flaw will be addressed separately.
📍 영향받는 시스템
Linux Kernel (KVM x86 모듈 사용 시스템, 2020년 Linux 5.9 이후 버전 포함)
⚔️ 공격 벡터
KVM 가상화 환경에서 메모리 페이지 회수 및 매핑 과정의 타이밍 이슈를 이용한 로컬 공격
🛡️ 대응 방법
최신 보안 패치가 적용된 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인
📊 CVSS Vector String
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
💻 영향받는 소프트웨어
NVIDIA GPU Display Driver for Linux