Zapscape는 KVM 취약점으로, 가상 머신에서 탈출하여 호스트 시스템을 제어할 수 있게 해줍니다.

키 포인트:
  • KVM에 치명적인 결함이 있어 공격자가 가상 ​​머신(L1)에서 탈출하여 호스트 서버(L0)를 완전히 제어할 수 있습니다.
  • 이 문제는 Linux 커널 5.9부터 존재했던 섀도우 MMU 관리의 "해제된 메모리 사용량" 버그로 인해 발생합니다.
  • 이 기능을 사용하려면 서버에서 중첩 가상화 기능이 반드시 활성화되어 있어야 합니다.
  • 이는 AMD 및 인텔 프로세서에 영향을 미칩니다(인텔 프로세서는 4단계 및 5단계 EPT 페이지 탐색 기능이 노출되어야 합니다).
  • 최근 커널 업데이트에서 수정되었지만, 임시 방편으로 중첩 가상화를 비활성화하는 것이 좋습니다.

잽스케이프

최근 클라우드 서버를 위협하는 취약점에 대한 정보가 공개 되었습니다. 이 취약점을 이용하면 공격자는 물리적 서버를 완전히 장악할 수 있으며 , 이는 클라우드 인프라 제공업체에게는 악몽과 같은 시나리오입니다.

Zapscape는 CVE-2026-64561 식별자로 등록된 Linux KVM 하이퍼바이저의 심각한 취약점으로, 중첩 가상화를 활성화함으로써 많은 플랫폼이 의도치 않게 감수하게 되는 위험을 노출합니다. 이 취약점을 이용하면 가상 머신(L1)에서 커널 권한을 가진 공격자가 호스트 시스템(L0)에서 루트 권한으로 코드를 실행할 수 있어 가상화 환경의 격리를 무너뜨릴 수 있습니다.

심각한 위협으로 간주되는 Zapscape는 가상 머신 탈출을 용이하게 할 뿐만 아니라 /dev/kvm 장치에 쓰기 권한이 있는 호스트 사용자에게 로컬 권한 상승 경로를 제공합니다 .

레드햇 과 같은 조직에서는 이 취약점을 불안정성과 서비스 거부 공격에 초점을 맞춰 CVSS 점수 7.0으로 평가했지만, 공개 된 개념 증명(PoC) 은 훨씬 더 파괴적인 범위, 즉 호스트의 루트 디렉터리에 임의의 파일을 직접 생성하는 것을 보여줍니다.

메모리 관리 장치의 혼란

Zapscape의 작동 방식은 KVM의 메모리 관리 장치(MMU)와 한 게스트(L1)가 다른 서브 게스트(L2)의 하이퍼바이저 역할을 할 때 하이퍼바이저가 페이지 테이블을 처리하는 방식 에 숨겨져 있습니다. 문제는 페이지 폴트 처리 과정에서 발생하는 논리적 순서 오류에 있습니다 . 커널 코드 경로에서 "더 이상 사용되지 않는 루트" 검사가 페이지 검색 함수 이후가 아니라 이전에 실행되었습니다.

이 잘못된 순서는 전형적인 use-after-free 취약점을 유발합니다 . 복구 과정에서 KVM은 현재 사용 중인 루트 디렉토리를 제거하고 유효하지 않은 것으로 표시할 수 있습니다. 그러나 이미 상태 점검이 실행되었기 때문에 시스템은 더 이상 유효하지 않은 루트 디렉토리 아래에서 매핑을 계속 구축합니다. 흥미롭게도 이 정렬 문제는 2008년부터 코드에 존재했지만, 2020년 7월 Linux 커널 5.9가 출시된 후 시스템이 더 이상 적용하지 않는 지시문이 도입되면서 심각하고 악용 가능한 문제가 되었습니다.

요구 사항 및 제한 사항

Zapscape를 악용하려면 환경이 매우 특정한 요구 사항을 충족해야 합니다. 첫째, KVM 모듈에서 중첩 가상화가 활성화되어 있어야 하며, 이 구성은 3계층 아키텍처(L0, L1, L2)를 가능하게 합니다. 공격자는 L1 계층에서 공격을 시작해야 하는데 , 이를 위해서는 해당 가상 머신에 대한 루트 권한이 필요합니다. 이후 공격자는 메모리 모드를 조작하고, L2 하위 게스트의 활동으로 인해 L0 호스트가 할당량 페이지 검색을 시작하도록 강제하여 메모리 손상을 발생시킵니다.

하드웨어 수준에서는 제조사에 따라 조건이 다릅니다. 중첩 페이지 테이블( SVM ) 을 사용하는 AMD 시스템에서는 취약점이 비교적 간단하며 추가적인 기능이 필요하지 않습니다. 반면, 인텔 프로세서의 경우 L1 게스트가 4~5단계 EPT 페이지워크 기능을 제공 해야 합니다 . 따라서 인텔 시스템에서의 공격 경로는 최근 아키텍처, 특히 Ice Lake-SP 제품군 이후의 시스템으로 제한됩니다.

공개 된 개념 증명 버전이 통제된 환경에서 호스트 시스템으로 침투하는 데 성공했지만, 보안 연구원들은 특정 재컴파일된 커널에서는 해당 익스플로잇이 완전한 시스템 탈출이 아닌 단순히 공격자의 가상 머신을 다운시켜 서비스 거부 공격으로 이어지는 경우가 있다고 보고했습니다.

완화, 패치 및 전략

Zapscape 문제에 대한 최종 해결책이 작년 7월 Linux 저장소에 패치와 함께 제공되었습니다. 이 패치는 유효성 검사 순서를 수정하여 , 루트 디렉토리 삭제 여부를 MMU 페이지 할당 이후로 옮겨 하이퍼바이저가 삭제된 루트 디렉토리 아래에 활성 매핑을 생성하지 않도록 합니다. 이러한 수정 사항은 이미 안정적인 커널 브랜치에 적용되었으며, 다양한 배포판을 통해 널리 배포되고 있습니다.

즉시 업그레이드할 수 없는 관리자를 위해 매우 효과적인 임시 해결책이 있습니다. 우선적으로 취해야 할 조치는 modprobe 구성 파일에서 `kvm_amd` 또는 `kvm_intel` 모듈에 `nested=0` 매개변수를 전달하여 중첩 가상화가 필수적인 경우를 제외한 모든 서버에서 중첩 가상화를 비활성화하는 것입니다. 이 조치를 위해서는 모듈을 다시 로드해야 하므로 현재 실행 중인 모든 가상 머신을 중지해야 합니다.

마지막으로, 더 자세한 내용을 알고 싶으시다면 다음 링크에서 확인하실 수 있습니다.


Google에서 선호하는 검색 엔진으로 추가