iMessage Media Parser Zero-Click → CoreAudio RCE → PAC/RPAC → Kernel → CryptoTokenKit Abuse
Reading time: 6 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
이 페이지는 iOS의 현대적인 zero-click 공격 표면과 iMessage의 자동 미디어 파싱을 악용해 CoreAudio를 손상시키고 BlastDoor를 우회하며 RPAC 경로를 통해 Pointer Authentication (PAC)을 무력화하고 Kernel로 권한 상승한 다음 CryptoTokenKit을 악용해 무단 키 사용을 수행하는 관찰된 종단간 익스플로잇 체인을 요약한다.
경고: 이는 수비수, 연구자 및 레드팀이 기술을 이해하도록 돕기 위한 교육용 요약이다. 공격적으로 사용하지 마라.
전체 흐름
- Delivery vector: a malicious audio attachment (e.g., .amr / MP4 AAC) sent via iMessage/SMS.
- Auto-ingestion: iOS가 사용자 상호작용 없이 미디어를 미리보기 및 변환을 위해 자동 파싱한다.
- Parser bug: malformed structures가 CoreAudio’s AudioConverterService를 호출하여 힙 메모리를 손상시킨다.
- Code exec in media context: 미디어 파싱 프로세스 내부에서 RCE가 발생; 특정 경로(예: “known sender” framing path)에서 BlastDoor 격리를 우회하는 것으로 보고됨.
- PAC/RPAC bypass: 임의 R/W를 획득하면 RPAC 경로에서의 PAC 우회로 arm64e PAC 하에서 안정적인 제어 흐름을 확보할 수 있다.
- Kernel escalation: 체인은 userland exec을 kernel exec으로 전환한다(예: 로그에 보이는 wireless/AppleBCMWLAN 코드 경로 및 AMPDU 처리 경로 등).
- Post-exploitation: Kernel 권한을 획득하면 CryptoTokenKit을 악용해 Secure Enclave–backed 키로 서명 수행, 민감 데이터 경로(Keychain contexts) 읽기, 메시지/2FA 가로채기, 사용자 프롬프트 없이 동작을 은밀히 승인, 마이크/카메라/GPS의 스텔스 감시 활성화 등이 가능하다.
iMessage/BlastDoor 공격 표면 메모
BlastDoor는 신뢰할 수 없는 메시지 콘텐츠를 파싱하도록 설계된 강화된 서비스이다. 그러나 관찰된 로그는 메시지가 “known sender”로 프레이밍될 때와 추가 필터(e.g., Blackhole)가 완화될 때 보호가 우회될 수 있는 경로를 시사한다:
IDSDaemon BlastDoor: Disabled for framing messages
SpamFilter Blackhole disabled; user has disabled filtering unknown senders.
요약:
- 자동 파싱은 여전히 원격 zero-click 공격 표면을 의미합니다.
- 정책/컨텍스트 결정(알려진 발신자, 필터링 상태)은 실제 격리 수준에 실질적인 변화를 줄 수 있습니다.
CoreAudio: AudioConverterService 힙 손상 (userland RCE)
영향받는 구성 요소:
- CoreAudio → AudioConverterService → AAC/AMR/MP4 파싱 및 변환 흐름
관찰된 파서 접점 (로그):
AudioConverterService ACMP4AACBaseDecoder.cpp: inMagicCookie=0x0, inMagicCookieByteSize=39
Technique summary:
- 잘못된 container/codec metadata(e.g., invalid/short/NULL magic cookie)가 decode setup 도중 메모리 손상을 유발합니다.
- 사용자 탭 없이 iMessage media conversion path에서 트리거됩니다.
- media parsing 프로세스에서 code execution을 유발합니다. write-up은 관찰된 전달 경로에서 이것이 BlastDoor를 탈출한다고 주장하며, 다음 단계를 가능하게 한다고 합니다.
Practical tips:
- Fuzz AAC/AMR magic cookie와 MP4 codec atoms을 AudioConverterService conversions 대상으로 테스트하세요.
- decoder initialization 주변의 heap overflows/underflows, OOB reads/writes, 및 size/length confusion에 집중하세요.
PAC bypass via RPAC path (CVE-2025-31201)
arm64e Pointer Authentication (PAC)은 return addresses 및 function pointers의 탈취를 방해합니다. 체인에서는 arbitrary read/write가 가능해진 이후 RPAC path를 사용해 PAC를 무력화했다고 보고합니다.
Key idea:
- arbitrary R/W로 공격자는 유효한 re-signed pointers를 조작하거나 PAC-tolerant 경로로 실행을 피벗할 수 있습니다. 이른바 “RPAC path”는 PAC 제약 하에서 제어 흐름을 가능하게 하여 userland RCE를 신뢰할 수 있는 kernel exploit 설정으로 전환합니다.
Notes for researchers:
- KASLR을 무력화하고 PAC 하에서도 ROP/JOP 체인을 안정화하기 위해 info leak를 수집하세요.
- controllable 한 방식으로 PAC를 생성하거나 인증하는 callsites를 표적으로 삼으세요(e.g., attacker-controlled 값으로 생성된 signatures, 예측 가능한 context keys, 또는 pointers를 re-sign하는 gadget sequences).
- SoC/OS에 따른 Apple의 hardening 차이를 예상하세요; 신뢰성은 leak, entropy, 그리고 강력한 primitives에 달려 있습니다.
Kernel escalation: wireless/AMPDU path example
관찰된 체인에서, memory corruption과 PAC bypass primitive로 userland에 진입한 이후 malformed AMPDU 처리 하의 Wi‑Fi stack(AppleBCMWLAN) 코드 경로를 통해 kernel 제어가 달성되었습니다. 예시 로그:
IO80211ControllerMonitor::setAMPDUstat unhandled kAMPDUStat_ type 14
IO80211ControllerMonitor::setAMPDUstat unhandled kAMPDUStat_ type 13
일반 기법:
- userland primitives를 사용하여 kernel R/W 또는 controlled call paths를 구축.
- 접근 가능한 kernel surfaces (IOKit, networking/AMPDU, media shared memory, Mach interfaces)을 악용하여 kernel PC control 또는 arbitrary memory를 획득.
- read/write primitives를 구축하고 가능한 경우 PPL/SPTM 제약을 무력화하여 안정화.
Post-exploitation: CryptoTokenKit and identity/signing abuse
커널이 손상되면 identityservicesd와 같은 프로세스를 가장하여 CryptoTokenKit을 통해 privileged cryptographic operations를 사용자 프롬프트 없이 호출할 수 있다. 예시 로그:
CryptoTokenKit operation:2 algo:algid:sign:ECDSA:digest-X962:SHA256
CryptoTokenKit <sepk:p256(d) kid=9a86778f7163e305> parsed for identityservicesd
영향:
- Secure Enclave–backed 키를 사용해 허가되지 않은 서명(tokens, messages, payments)을 수행하여, 키가 내보내지 않더라도 신뢰 모델을 파괴할 수 있습니다.
- 2FA 코드/메시지를 은밀히 가로채고, 결제/송금을 승인하며, 스텔스 마이크/카메라/GPS를 활성화할 수 있습니다.
방어 관점:
- 커널 이후 무결성 손상은 치명적으로 간주: CTK 소비자에 대해 런타임 attestation을 강제하고, ambient authority를 최소화하며, 사용 시점에 entitlements를 검증하십시오.
재현 및 텔레메트리 힌트 (실험실 전용)
- Delivery: iMessage/SMS를 통해 조작된 AMR/MP4-AAC 오디오를 대상 기기로 전송합니다.
- 파싱 및 무선 스택 반응 주위의 관련 로그 라인을 통해 텔레메트리를 관찰합니다.
- 장치는 최신 패치 상태인지 확인하고, 격리된 실험실 환경에서만 테스트하십시오.
완화 및 하드닝 아이디어
- Patch level: iOS 18.4.1이 이 체인을 수정한 것으로 보고되었으니 장치를 최신 상태로 유지하십시오.
- Parser hardening: codec cookies/atoms 및 길이에 대한 엄격한 검증; 경계 검사(bounding) 포함의 방어적 디코딩 경로를 구현하십시오.
- iMessage isolation: 미디어 파싱에 대해 “known sender” 컨텍스트에서 BlastDoor/Blackhole 완화를 피하십시오.
- PAC hardening: PAC-gadget 가용성을 줄이고, 서명이 예측 불가능한 컨텍스트에 바인딩되도록 하며, PAC-허용 우회 가능 패턴을 제거하십시오.
- CryptoTokenKit: 키 바인딩 연산에 대해 post-kernel attestation과 호출 시점의 강한 entitlements를 요구하십시오.
- Kernel surfaces: 무선 AMPDU/status 처리 부위를 강화하고, 탈취 후 userland에서 공격자 제어 입력을 최소화하십시오.
영향 받는 버전 (보고된 바)
- iOS 18.x, iOS 18.4.1 이전 (2025-04-16).
- Primary: CoreAudio → AudioConverterService (iMessage/SMS를 통한 미디어 자동 파싱 경로).
- Chained: PAC/RPAC 경로 및 AppleBCMWLAN AMPDU 처리를 통한 커널 권한 상승.
References
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.