
CVE-2025-70341: App-Auto-Patch의 TOCTOU를 통한 로컬 권한 상승
App-Auto-Patch v3.4.2는 작업 디렉토리를 전 세계에 쓰기 가능한 권한(chmod 777)으로 생성하여, 로컬 TOCTOU (time-of-check-time-of-use) 경쟁 조건을 가능하게 합니다. 권한이 없는 로컬 공격자는 이를 악용하여 설치 전에 검증된 패키지를 악성 패키지로 교체하고, 루트 권한으로 임의 코드를 실행할 수 있습니다. 또한, 악의적인 Installomator 레이블 조각은 레이블 파싱 중에 살균되지 않은 입력을 eval로 실행하여 임의 코드 실행을 달성할 수 있습니다.
점수: 7.8 (높음)
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
| 지표 | 값 |
|---|---|
| 공격 벡터 | 로컬 |
| 공격 복잡성 | 낮음 |
| 필요한 권한 | 낮음 |
| 사용자 상호작용 | 없음 |
| 범위 | 변경되지 않음 |
| 기밀성 | 높음 |
| 무결성 | 높음 |
| 가용성 | 높음 |
파일: App-Auto-Patch-via-Dialog.zsh, 2525번 줄
설치 중에 appAutoPatchFolder가 chmod 777로 생성됩니다. 이로 인해 모든 로컬 사용자가 디렉토리에 파일을 쓰거나, 수정하거나, 삭제할 수 있습니다.
파일: App-Auto-Patch-via-Dialog.zsh, 4744번 줄
Installomator 레이블 조각이 살균 없이 eval을 사용하여 파싱됩니다. 전 세계 쓰기 가능 디렉토리와 결합하여, 공격자는 루트로 임의 명령을 실행하는 악의적인 레이블 조각을 주입할 수 있습니다.
1. App-Auto-Patch가 appAutoPatchFolder를 chmod 777로 생성
2. Installomator가 PKG를 전 세계 쓰기 가능한 tmpDir에 다운로드하고 서명 확인
3. 검증과 설치 사이에 약 140줄의 bash 실행 (경쟁 창)
4. 공격자가 검증된 PKG를 악성 PKG로 교체
5. installer -pkg가 루트로 공격자의 PKG를 실행
chmod 777 tmpDir을 사용하는 모든 Installomator 버전)가 설치된 macOS 시스템pkgbuild 용)터미널 1 (권한 없는 사용자):
python3 poc.py
터미널 2 (루트, MDM/관리자 트리거 시뮬레이션):
sudo ./simulate-vulnerable-env.sh
PoC는 /var/tmp에서 chmod 777로 생성된 Installomator 디렉토리를 모니터링한 후, 루트로 실행되는 postinstall 스크립트가 포함된 악성 PKG로 합법적인 PKG를 교체하기 위해 경쟁합니다.
전체 내용은 poc.py 및 simulate-vulnerable-env.sh를 참조하십시오.
chmod 777에서 chmod 755로 변경하여 공격 체인을 차단합니다.| 날짜 | 이벤트 |
|---|---|
| 2025-12-22 | 취약점 발견 |
| 2025-12-22 | PoC 생성 |
| 2025-12-22 | PR #202 제출 |
| 2025-12-22 | 이슈 #203 등록 |
| 2025-12-23 | App-Auto-Patch 3.5.0에서 수정됨 |
| 2026-02-20 | CVE-2025-70341 할당 |
이 개념 증명은 교육 및 공인된 보안 테스트 목적으로만 제공됩니다. 자신이 소유하거나 명시적 테스트 허가를 받은 시스템에서만 책임감 있게 사용하십시오.