🇰🇷 한글 설명
Linux 커널의 KVM arm64 구현에서 가상 주소(VA) 공간 끝부분의 TLB 무효화 처리 오류가 발견되었습니다. 주소 오버플로로 인해 특정 조건에서 TLB 무효화가 실패하여 메모리 일관성 문제가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 메모리 주소를 계산할 때 마지막 경계선에서 숫자가 0으로 돌아가는 오류가 발생했습니다. 이로 인해 이전에 사용하던 메모리 정보가 제대로 지워지지 않아 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: Correctly handle end of VA space TLBI invalidation
Our TLB invalidation by VA code is based on comparing two ranges,
one defined by the TLB, and one defined by the TLBI instruction.
Each range is defined by a start and a size. However, the way the
comparison is done doesn't account for address rollover, as it
compares an address with (base + size). This works nicely until
this expression represent the last page/block in the TTBR1 VA space,
as the result is a big fat 0. And a failed TLB invalidation.
Rewrite the comparison in a way that is immune to the address
rollover (making the end address inclusive instead of exclusive),
and move this into a common helper that is used by both VA and IPA
invalidations, as suggested by Hyunwoo Kim (although the IPA version
didn't suffer from this particular problem, obviously).
📍 영향받는 시스템
Linux kernel (KVM arm64 architecture)
⚔️ 공격 벡터
특정 가상 주소 범위를 사용하는 메모리 관리 작업 시 주소 오버플로 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인