🇰🇷 한글 설명
Linux 커널의 KVM arm64 구현에서 VNCR 매핑 카운터를 관리하는 방식에 결함이 발견되었습니다. 이 카운터는 TLB 무효화 여부를 결정하는 데 사용되지만, 실제 매핑 상태를 정확히 반영하지 못해 TLB 무효화가 누락될 수 있는 보안 취약점이 존재합니다.
💡 쉬운 설명
컴퓨터의 메모리 주소를 관리하는 과정에서 정보가 제대로 지워지지 않아 이전 데이터가 남을 수 있는 문제입니다. 이로 인해 가상 환경에서 보안 경계를 넘어 데이터가 노출될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: Remove VM-wide VNCR mapping counter
The global VNCR mapping counter is used to decide whether an L1
provided VNCR page is mapped in L0 on any CPU at the point of
dealing with a TLB invalidation. It is incremented when a mapping
is made in the fixmap, and decremented when unmapped.
As it turns out, this tracking has several flaws:
- we are trying to invalidate TLBs, and the mapping is only an
opportunistic consequence of the TLB. Checking this counter to
decide whether a TLB needs to be invalidated may result in missed
invalidations.
- an L1 vcpu invalidating its own TLB (a very likely case) will not
succeed in invalidating the VNCR pseudo TLB because that page is
not mapped in L0 at this stage.
Given that this tracking fails at delivering the minimum guarantees
that are required and is only a performance optimisation, remove it
completely.
📍 영향받는 시스템
Linux kernel (KVM arm64 architecture)
⚔️ 공격 벡터
가상화 환경(L1 hypervisor)에서 TLB 무효화가 누락된 점을 이용한 메모리 데이터 유출 또는 권한 상승
🛡️ 대응 방법
VNCR 매핑 카운터 로직이 제거된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 확인