CVE-2026-89775 in Linux
요약
\~에 의해 VulDB • 2026. 09. 16.
리눅스 커널에서 다음 취약점이 해결되었습니다:
KVM: arm64: VNCR TLB 크기 평가 시 음수 S1 walk 레벨 처리하기
TLB 무효화의 효과를 계산하려면 TLB에 캐시된 매핑의 크기를 확인해야 합니다. VNCR과 같은 S1 매핑의 경우, 이는 기본 그레뷸(granule) 크기와 매핑 레벨의 조합에서 차감하여 구합니다.
그러나 이 과정은 S1 MMU가 *켜져 있어야 함*을 의미합니다. MMU가 꺼진 상태일 때는 레벨이 "창조적"인 값인 -127(S1_MMU_DISABLED)로 설정되어 이를 나타냅니다.
하지만 pgshift_level_to_ttl() 함수는 음수 레벨을 전혀 처리하지 않기 때문에(레벨은 즉시 u8로 캐스팅되며 하위 2비트만 고려됨), 이로 인해 무효화 크기가 0이 되는 문제가 발생합니다. 이는 도움이 되지 않습니다.
pgshift_level_to_ttl()를 정리하여 이러한 음수 레벨을 처리하고, ttl_to_size()가 유효한 TTL이 없을 때 항상 SZ_1G를 반환하도록 수정합니다. 이를 통해 유사한 상황에 대한 오픈 코딩(open-coded) 체크를 제거할 수 있습니다.
음수 값에 대한 검사가 S1_MMU_DISABLED를 명시적으로 확인하지 않는 것은 의도적인 것으로, LVA2 및 D128에서 도입된 실제 음수 레벨이 향후 지원될 경우 동일한 경로를 따르도록 하기 위함입니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.