
CVE-2025-24104에 대한 기술적 분석: 백업 복원 중 심볼릭 링크 검증 우회를 통한 iOS 샌드박스 탈출, 샌드박스 외부에서 임의 파일 읽기를 가능하게 함.
Apple이 나중에 CVE-2025-24104로 추적한 버그를 신고했습니다. 원본 보고서에서는 악성 백업을 사용하여 샌드박스 제한을 우회하는 방법을 시연했습니다. 그러나 Apple의 초기 설명에서는 이 취약점이 보호된 시스템 파일을 수정할 수 있다고 명시했습니다. 기록을 바로잡고자 합니다: 이 버그는 실제로 공격자가 샌드박스 외부의 임의 파일을 읽을 수 있게 합니다.
문제를 파헤쳐 보니 취약점은 백업 복원 과정에서 적절한 심볼릭 링크 검증이 부족하기 때문에 발생합니다. 구체적으로, 파일
/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles/CloudConfigurationDetails.plist
을 심볼릭 링크로 대체한 백업을 제작하면 시스템이 샌드박스 외부에 있더라도 선택한 파일을 읽게 됩니다.
결함:
mc_mobile_tunnel lockdown 서비스는 CloudConfigurationDetails.plist가 심볼릭 링크인지 확인하지 않습니다. 만약 그렇다면 서비스가 링크를 따라가 공격자가 모든 제한된 파일의 내용을 검색할 수 있게 합니다.
재현 단계:
CloudConfigurationDetails.plist가 임의의 제한된 파일을 가리키는 심볼릭 링크인 백업을 제작했습니다.com.apple.mobile.MCInstall 서비스에 GetCloudConfiguration 명령을 보냈습니다. 예상된 파일 내용 대신 서비스는 내 심볼릭 링크가 가리키는 파일의 내용을 반환했습니다.샌드박스 외부의 임의 파일을 읽을 수 있는 능력은 심각한 문제입니다. 이는 보호되어야 할 민감한 시스템 데이터가 공격자에게 노출될 수 있음을 의미합니다. 이는 단순한 사소한 버그가 아니라 백업 처리 방식의 근본적인 보안 결함입니다.
이 문제를 해결하려면 백업 복원 과정에 더 엄격한 검사가 필요합니다:
CloudConfigurationDetails.plist와 같은 파일을 읽기 전에 서비스는 해당 파일이 일반 파일인지 심볼릭 링크인지 확인해야 합니다. 심볼릭 링크인 경우 복원을 거부하거나 안전하게 처리해야 합니다.iOS 18.3 릴리스와 함께 Apple은 ManagedConfiguration 프레임워크에 ConfigurationProfiles 폴더에서 발견된 모든 심볼릭 링크를 제거하는 추가 검사를 도입했습니다. 구체적으로:
MCRemoveFileIfSymlink라는 새로운 함수가 추가되었습니다.MCFixHostileSymlinks에 의해 호출됩니다.ConfigurationProfiles 폴더의 파일이 심볼릭 링크로 식별되면 즉시 삭제됩니다.bindiff 세부 사항은 여기에서 확인할 수 있습니다:
https://github.com/blacktop/ipsw-diffs/blob/main/18_2_22C152__vs_18_3_22D5034e/DYLIBS/ManagedConfiguration.md
아래는 새로운 검사가 추가된 위치를 보여주는 제 자체 diff의 스크린샷입니다:

이 새로운 완화 조치가 문제를 100% 해결하지는 않는다는 점을 언급할 가치가 있습니다. Apple이 제 권장 수정 사항을 구현하지 않았기 때문에 이미 이를 우회할 방법을 찾았지만, 해당 세부 사항은 비공개로 유지하겠습니다.
이것은 CVE-2025-24104에 대한 제 개인적인 설명이며, Apple의 원래 설명이 잘못되었음을 강조합니다. 실제 위험은 시스템 파일 수정이 아니라 샌드박스 외부 파일의 무단 읽기입니다.
익스플로잇 발견자: Hichem Maloufi (ifpdz)