구글 25만 달러 현상금 받은 리눅스 KVM 가상머신 탈취 취약점
리눅스 커널의 KVM 가상머신에서 16년간 방치된 심각한 취약점(Januscape)이 발견되어, 악의적인 클라우드 사용자가 호스트 시스템 전체를 장악할 수 있는 문제가 확인되었습니다. 또한 15년간 잠복해 있던 권한 상승 취약점(GhostLock)도 AI 기반 스캐너를 통해 발견되었습니다. 두 취약점 모두 이미 패치되었으나 클라우드 및 서버 인프라의 근본적인 보안 위협을 노출한 사안입니다.
신뢰할 수 없는 가상 머신이 호스트 머신의 루트(root) 권한을 얻을 수 있게 만드는 리눅스 취약점이 이번 주 오픈소스 운영체제에서 발견된 두 가지 고위험 결함 중 하나로 드러났다.
이 취약점은 수많은 리눅스 배포판의 커널에 포함된 가상 머신 앱인 KVM에 존재한다. CVE-2026-53359로 추적되는 이 취약점은 클라우드 플랫폼에서 사용자의 인스턴스를 호스트 OS 및 다른 사용자 인스턴스와 격리하기 위해 사용되는 게스트 가상 머신이 해당 컨테이너를 탈출할 수 있도록 만든다.
야누스케이프(Januscape): 클라우드 플랫폼에 대한 위협 이 취약점은 AMD와 Intel 프로세서 모두에서 실행되는 KVM에 영향을 미친다. 이는 호스트 머신의 리소스가 아닌 게스트 VM 내의 OS나 드라이버와 같은 리소스로만 구성된 KVM 게스트 측(KVM guest-side)에 있는 버그를 악용한다. 이 위협은 리눅스 커널에서 16년 동안 눈에 띄지 않았다.
결함을 발견한 연구원 김현우(Hyunwoo Kim)는 "오직 게스트 측 작업만으로도 공격자가 자신의 VM을 실행하는 호스트를 손상시킬 수 있다"고 작성했다. 그는 예를 들어, 공용 클라우드에서 단 하나의 인스턴스만 대여한 공격자가 호스트 커널에 패닉을 일으켜 동일한 물리적 머신의 다른 모든 테넌트 VM을 다운시키거나(DoS), 호스트에서 루트 권한으로 코드를 실행하여 호스트와 그 안의 모든 게스트를 장악할 수 있다고 설명했다.
김현우는 이 취약점의 이름을 '야누스케이프(Januscape)'로 명명했다. 이 결함은 메모리 손상 취약점의 일종으로, 최근 해제된 메모리 영역에 악성 코드를 주입하는 Use-After-Free 취약점이다. 취약점은 호스트 메모리 주소를 하이퍼바이저 메모리 주소로 변환하거나 그 반대로 변환하는 과정인 Shadow MMU 에뮬레이션에 존재한다. 공격은 게스트 측 작업만 트리거하여 주소 변환을 돕는 호스트의 데이터 구조인 호스트 커널의 섀도우 페이지를 손상시킨다.
김현우는 게스트 VM 내에서 실행되어 호스트 OS에서 충돌을 일으키는 개념 증명(PoC) 익스플로잇을 공개했다. 그는 게스트를 완전히 탈출할 수 있는 익스플로잇도 존재하지만 "아주 먼 미래에야" 공개할 것이라고 밝혔다. 이 취약점은 메모리 변환과 관련된 별도의 프로세스인 QEMU에서는 발생하지 않는다. 이는 자체 가상화 스택을 구현하고 사용하는 클라우드 환경에서도 공격이 통할 수 있음을 의미한다. 단, 공격이 성공하려면 게스트 VM 사용자에게 루트 권한이 있어야 한다. 구글은 이 취약점을 보고한 대가로 25만 달러의 현상금을 지급했다.
고스트락(GhostLock)의 등장 한편, 제한된 권한을 가진 사용자가 루트로 권한을 상승시킬 수 있는 별도의 리눅스 취약점도 발견되었다. CVE-2026-43499로 추적되는 이 결함은 OS에 15년 동안 잠복해 있었다. 네뷸라 시큐리티(Nebula Security)의 연구원들은 AI 기반 취약점 스캐너인 베가(Vega)를 사용하여 이를 발견했다고 밝혔다.
레드아이 시큐리티(RedEye Security)의 설립자이자 연구원인 맷 루카스(Matt Lucas)는 다음과 같이 설명했다: 이 결함은 시급한 작업이 사소한 작업에 의해 차단되지 않도록 하는 시스템인 커널의 futex 우선 상속(futex priority-inheritance) 메커니즘에 존재한다. 이 시스템의 일부에는 작업 대기를 마친 후 정리하는 단계가 있다. 잠금(lock) 작업이 막다른 길에 도달하여 철회해야 하는 드문 경로에서, 이 정리 작업이 잘못된 시기에 실행되어 잘못된 작업의 레코드를 지워버린다. 그 결과 커널은 이미 해제되고 재사용된 메모리에 대한 포인터를 계속 쥐고 있게 된다. 이 오래된 포인터를 신뢰하는 것 자체가 전형적인 Use-After-Free 결함의 전부다.
이로부터 네뷸라(Nebula)는 몇 단계의 과정을 연결하여 이 매달린 포인터를 완전한 통제권으로 확장시켰고, 결국 커널을 속여 그들의 코드를 루트로 실행하도록 만들었다. 그들이 악용한 futex 우선 상속 코드는 2011년으로 거슜러 올라가는 오래되고 광범위하게 사용되는 메커니즘으로, 최근 몇 년 동안 제대로 재검토한 사람이 거의 없었다. 네뷸라가 '고스트락(GhostLock)'이라고 명명한 이 취약점은 10점 만점에 7.8점의 심각도 등급을 받았다. 구글은 연구원에게 92,337달러의 현상금을 수여했다.
야누스케이프에 대해 지급된 25만 달러의 보상금과 마찬가지로, 이 역시 구글의 kernelCTF 버그 바운티 프로그램을 통해 수여되었다. 두 결함 모두 패치가 완료된 상태다.