🇰🇷 한글 설명
Linux 커널의 mshv(Microsoft Hyper-V) 모듈에서 접근 권한 검증 없이 모든 메모리 fault에 대해 페이지를 재맵핑 시도하여, 읽기 전용 영역에 쓰기 시도 후 즉시 재fault되는 무한 루프가 발생합니다. 악의적 게스트가 의도적으로 이 루프를 트리거하여 호스트의 vCPU와 자원을 소비하는 DoS 공격이 가능합니다.
💡 쉬운 설명
Hyper-V 가상화에서 게스트 OS가 읽기만 허용된 메모리에 쓰려고 할 때 시스템이 같은 오류를 반복하며 얼어붙는 문제입니다. 악의적 게스트가 이를 악용해 호스트 컴퓨터의 성능을 악화시킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mshv: Fix infinite fault loop on permission-denied GPA intercepts
Prevent infinite fault loops when guests access memory regions without
proper permissions. Currently, mshv_handle_gpa_intercept() attempts to
remap pages for all faults on movable memory regions, regardless of
whether the access type is permitted. When a guest writes to a read-only
region, the remap succeeds but the region remains read-only, causing
immediate re-fault and spinning the vCPU indefinitely.
Validate intercept access type against region permissions before
attempting remaps. Reject writes to non-writable regions and executes to
non-executable regions early, returning false to let the VMM handle the
intercept appropriately.
This also closes a potential DoS vector where malicious guests could
intentionally trigger these fault loops to consume host resources.
📍 영향받는 시스템
Linux kernel with mshv module enabled (Microsoft Hyper-V guest support)
⚔️ 공격 벡터
Malicious guest VM intentionally writes to read-only memory regions to trigger infinite fault loops consuming host resources
🛡️ 대응 방법
Update Linux kernel to version with access type validation in mshv_handle_gpa_intercept() function before remapping attempts
🔧 검증 코드
mshv 또는 Hyper-V 관련 모듈이 표시되면 커널이 Hyper-V를 지원하고 있으므로, uname -r로 커널 버전을 확인하여 보안 업데이트 적용 여부 검증
lsmod | grep -E 'mshv|hv_netvsc|hv_utils' && echo 'Hyper-V modules loaded - update kernel'