🇰🇷 한글 설명
Parallels Desktop의 prl_disp_service가 루트 권한으로 실행되는 과정에서 발생하는 취약점입니다. 공격자가 조작된 폴더 이름을 사용하여 tar 명령어를 실행할 때 추가적인 플래그를 주입함으로써, macOS의 tar 기능을 악용해 임의의 프로그램을 루트 권한으로 실행할 수 있습니다.
💡 쉬운 설명
프로그램이 파일을 압축 해제할 때 폴더 이름에 특수 문자가 포함되어 있으면 이를 명령어로 오해하는 문제입니다. 이를 통해 해커가 컴퓨터의 관리자 권한을 몰래 탈취할 수 있습니다.
🇺🇸 원문 (English)
Parallels Desktop runs prl_disp_service as root. Local clients reach it on the world-writable socket /var/run/prl_disp_service.socket. PrlSrv_LoginLocal accepts peer credentials. No Parallels signature. No admin group.
After login, PrlSrv_InstallAppliance lets you pick the appliance folder (sVmParentPath). The daemon unpacks with one string, tar -xf "%1" -C "%2", then Qt QProcess::splitCommand chops that string into words. A quote in the folder name closes early. The leftover text becomes extra tar flags. macOS tar --use-compress-program= runs the named program as root.
📍 영향받는 시스템
Parallels Desktop (prl_disp_service가 루트 권한으로 실행되는 버전)
⚔️ 공격 벡터
로컬 클라이언트가 조작된 폴더 이름을 포함한 어플라이언스를 통해 tar 명령어 인자 주입(Argument Injection) 공격 수행
🛡️ 대응 방법
Parallels Desktop을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
해당 소켓 파일의 권한이 world-writable(777 등)인지 확인하여 로컬 접근 가능성을 점검합니다.
ls -l /var/run/prl_disp_service.socket