CVE-2025-31200 및 CVE-2025-31201 | iMessage 제로클릭 RCE 체인
요약
이 저장소는 iOS 18.x 이상에 영향을 미치는 제로클릭 원격 익스플로잇 체인에 대한 연구를 문서화합니다. iMessage를 통해 전달된 변조된 AMR 오디오 파일은 다음을 트리거합니다:
- CoreAudio의 힙 손상 (CVE-2025-31200) — 유효한 FT=7 프레임에 내장된 불법 비트스트림 매개변수를 통한 AudioConverterService AMR 12.2 디코딩 중 발생.
- AppleBCMWLAN/AMPDU 처리를 통한 커널 권한 상승 (CVE-2025-31201) — RPAC 우회로 전체 커널 읽기/쓰기 달성.
- BCM4387 공존 SRAM을 통한 하드웨어 피벗 (CVE 미배정) — 커널 R/W를 사용하여 IOMMU 경계 아래의 Broadcom Wi-Fi/BT 공존 SRAM에 직접 쓰고, OS 개입 없이 블루투스 컨트롤러에 HCI 명령을 주입.
피벗 후 테스트에서 CryptoTokenKit 서명 작업의 오용이 관찰되었습니다 — 스푸핑된 블루투스 신원을 통해 대화형 프롬프트 없이 Secure Enclave 지원 키를 호출. Apple은 iOS 18.4.1에서 CVE-2025-31200 및 CVE-2025-31201을 패치했습니다. BCM4387 공존 브리지는 모든 iOS 버전에서 패치되지 않은 상태로 남아 있습니다.
확인된 동작
- CVE-2025-31200 (CoreAudio) — 유효한 FT=7 프레임의 불법 비트스트림 매개변수를 통한 AudioConverterService AMR 12.2 디코더의 힙 손상. 50개 프레임에 걸쳐 189개의 매개변수 위반; 피치 지연 최대 248 (법적 최대 143); 210바이트 힙 오버플로우. 제로클릭, 사용자 상호작용 불필요.
- CVE-2025-31201 (AppleBCMWLAN) —
parseAggregateFrame에서 AMPDU 서브프레임 길이 혼동을 통한 커널 권한 상승. 서명된 포인터 위조 없이 PAC 우회 달성. 영향을 받는 기기/빌드에서 완전 재현 가능.
- BCM4387 공존 브리지 (패치 안 됨) — 커널 R/W를 사용하여
0x1173FF의 IOMMU 보호 경계에서 0x5400바이트 아래에 위치한 0x102000의 BCM4387 공존 SRAM에 직접 쓰기. 블루투스 컨트롤러에 HCI 명령 직접 주입. CVE 미배정. iOS 버전에 관계없이 모든 iPhone 13–16에서 패치되지 않음.
- 제로클릭 전달 벡터 — 기기가 잠긴 상태에서 iMessage가 악성 AMR 오디오를 처리하며, 코덱 비트스트림 매개변수에 익스플로잇 페이로드가 포함된 유효한 컨테이너 구조를 통해 BlastDoor 우회.
손상 후 관찰된 동작
- 무단 서명: CryptoTokenKit /
identityservicesd가 손상된 컨텍스트에서 UI 프롬프트 없이 스푸핑된 블루투스 신원을 통해 자동 잠금 해제 평가를 트리거하여 서명 작업을 호출 (Secure Enclave 키 자료는 내보내지 않음).
- 시스템 불안정: PME 시행 로그, GPU/AppleDCP 링크 오류,
mediaplaybackd 변형 전환 루프, 및 가끔 launchd/SoC 정지와 관련된 미디어 디코딩 실패.
- 전파 조건: AWDL 전반의 피어 토큰 재사용 관찰; 토큰 캐시가 유지될 경우 교차 장치 위험 가능성.
영향 범위
- 영향 받음: iOS 18.4 이하 (CVE-2025-31200, CVE-2025-31201); iOS 버전에 관계없이 모든 iPhone 13–16 (BCM4387 하드웨어 벡터)
- 패치됨: iOS 18.4.1 (2025년 4월 16일) — CVE-2025-31200, CVE-2025-31201 수정
- 패치 안 됨: BCM4387 공존 SRAM — CVE 없음, 펌웨어 업데이트 없음, 모든 iPhone 13–16에 영향
- 벡터: 알려진 발신자로부터의 제로클릭 iMessage/SMS (BlastDoor/Blackhole 우회)
- 주요 구성 요소: AudioConverterService (CoreAudio AMR 디코더) → AppleBCMWLAN.dext (커널 권한 상승) → BCM4387 공존 SRAM (하드웨어 피벗)
- 필요한 권한: 없음 (초기); 체인 이후 커널 획득
- 영향 요약: 무결성 (무단 서명, 토큰/장치 사칭) + 기밀성 (AGX 프레임버퍼 캡처, HID 감시) + 가용성 (시스템 정지)
공개 타임라인
- Apple에 보고: 2024년 12월 20일
- Apple 및 US-CERT에 재보고: 2025년 1월 21일 (추적 ID: VRF#25-01-MPVDT)
- Google Project Zero/연구팀과 공유: 2025년 4월 11일
- Apple이 패치 (CVE-2025-31200, CVE-2025-31201): 2025년 4월 16일 (iOS 18.4.1)
- CVE 할당: CVE-2025-31200 및 CVE-2025-31201
- CISA KEV 목록 등재 (두 CVE 모두): 2025년 4월 16일 — 연방 패치 마감일 2025년 5월 8일
- BCM4387 공존 SRAM을 Broadcom PSIRT에 제출: 2026년 3월 — CVE 미할당, 패치 미발행
영향 설명
이 체인을 원격으로 트리거하는 공격자는 다음을 달성할 수 있습니다:
- 커널 수준 손상
- Secure Enclave 서명 프리미티브의 런타임 탈취
- 장치 신원 사칭
- 신원 바운드 토큰 위조
- 사용 가능한 iOS 업데이트로 해결되지 않은 하드웨어 수준 블루투스 피벗
심각도: 치명적 (CVSS 3.1 체인 인식 10.0)
운영 위험: 높음; BCM4387 하드웨어 피벗이 모든 iPhone 13–16에서 패치되지 않음; 감염된 기기에는 사용 가능한 복구 경로 없음.
관련 연구
권장 사항
- 모든 메시지에 대해 BlastDoor/첨부 파일 검사 시행; 발신자 메타데이터를 기준으로 우회하지 않음. 컨테이너 프레임 구조뿐만 아니라 코덱 비트스트림 매개변수까지 검증 확대.
- 3GPP TS 26.090 법적 범위에 대해 AMR 피치 지연, LSF 계수, 코드북 인덱스를 포함한 모든 디코더 매개변수에 엄격한 입력 검증 적용.
- CryptoTokenKit/Secure Enclave 서명 작업에 대한 런타임 증명 구현하여 호출자 무결성 및 권한 확인.
- 무선 드라이버 표면 및 IOKit 진입점을 변조된 커널 데이터로부터 강화; AppleBCMWLAN에서 AMPDU 서브프레임 길이 처리 감사.
- BCM4387 IOMMU 보호 경계를 확장하여 공존 SRAM 영역(
0x102000–0x1173FF)을 포함. iOS 업데이트 인프라를 통해 배포되는 Broadcom 펌웨어 업데이트 필요.
- 시스템 로그에서
identityservicesd / ctkd 이상 징후 및 예상치 못한 SafariSafeBrowsing 활동 모니터링.
- 기기 무결성 평가를 위해 ZombieHunter 및 Citizen Lab MVT 사용.
라이선스 및 면책 조항
방어적 연구 및 추가 연구를 위해 공개됨.