[하루한줄] Full VM escape Parallels Desktop on Intel and M1

URL

Don’t Share Your $HOME with Untrusted Guests

Target

  • 4월 23일 기준 Parallels Desktop 최신 버전(Parallels Desktop 16.5.0 both Intel and M1)

Explain

매킨토시 컴퓨터에 하드웨어 가상화를 제공하는 Parallels Desktop에서 Guest OS와 $HOME 디렉터리를 공유하여 발생하는 VM Escape가 발견되었습니다.

Parallels는 기본 값으로 호스트 운영체제(MacOS)의 사용자 홈 디렉터리를 Parallels 공유 폴더로 게스트 OS에 공유합니다. MacOS에서 interactive shell binary는 다른 유닉스 기반 OS와 동일하게 터미널이 열릴 때마다 실행되며 bash profile을 참조합니다. 이를 이용하여 공유 홈 디렉터리에 악성 바이너리를 삽입한 후 .zprofile이나 다른 shell profile file에서 호출하면 바이너리는 터미널이 시작될 때마다 호스트 OS에서 실행됩니다. 이를 통해 지속적으로 호스트 OS에 RCE가 가능합니다.

POC는 다음과 같으며 악성 바이너리 샘플은 github에서 확인하실 수 있습니다.

cp mybinary /media/psf/Home/.hello
chmod +x /media/psf/Home/.hello
echo "~/.hello" >> /media/psf/Home/.zprofile