iMessage Media Parser Zero-Click → CoreAudio RCE → PAC/RPAC → Kernel → CryptoTokenKit Abuse
Reading time: 7 minutes
tip
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Esta página resume una superficie de ataque zero-click moderna en iOS y una cadena de explotación de extremo a extremo observada que abusa del parseo automático de medios de iMessage para comprometer CoreAudio, evadir BlastDoor, derrotar Pointer Authentication (PAC) vía un camino RPAC, escalar al kernel y finalmente abusar de CryptoTokenKit para usos no autorizados de claves.
Advertencia: Este es un resumen educativo para ayudar a defensores, investigadores y equipos rojos a entender las técnicas. No usar con fines ofensivos.
Cadena de alto nivel
- Vector de entrega: un adjunto de audio malicioso (p. ej., .amr / MP4 AAC) enviado vía iMessage/SMS.
- Procesamiento automático: iOS analiza automáticamente los medios para vistas previas y conversiones sin interacción del usuario.
- Fallo del parser: estructuras malformadas afectan AudioConverterService de CoreAudio y corrompen la memoria heap.
- Ejecución de código en el contexto de medios: RCE dentro del proceso de parseo de medios; reportado que evade la aislación de BlastDoor en rutas específicas (p. ej., el camino de framing “known sender”).
- Bypass PAC/RPAC: una vez que se consigue R/W arbitrario, un bypass de PAC en la ruta RPAC permite un control de flujo estable bajo arm64e PAC.
- Escalada a kernel: la cadena convierte la ejecución en userland a ejecución en kernel (p. ej., vía rutas de código wireless/AppleBCMWLAN y el manejo de AMPDU como se ve en los logs abajo).
- Post-explotación: con acceso al kernel, abusar de CryptoTokenKit para realizar firmas con claves respaldadas por Secure Enclave, leer rutas de datos sensibles (contextos de Keychain), interceptar mensajes/2FA, autorizar acciones silenciosamente y habilitar vigilancia sigilosa (micrófono/cámara/GPS) sin avisos.
iMessage/BlastDoor attack surface notes
BlastDoor es un servicio endurecido diseñado para parsear contenido de mensajes no confiables. Sin embargo, logs observados indican rutas donde las protecciones pueden ser eludidas cuando los mensajes se enmarcan desde un “known sender” y cuando filtros adicionales (p. ej., Blackhole) están relajados:
IDSDaemon BlastDoor: Disabled for framing messages
SpamFilter Blackhole disabled; user has disabled filtering unknown senders.
Conclusiones:
- Auto-parsing sigue representando una superficie de ataque remota zero-click.
- Las decisiones de política/contexto (remitente conocido, estado de filtrado) pueden cambiar materialmente el aislamiento efectivo.
CoreAudio: AudioConverterService heap corruption (userland RCE)
Componente afectado:
- CoreAudio → AudioConverterService → AAC/AMR/MP4 parsing and conversion flows
Punto de interacción observado del parser (logs):
AudioConverterService ACMP4AACBaseDecoder.cpp: inMagicCookie=0x0, inMagicCookieByteSize=39
Technique summary:
- Metadatos de contenedor/codec malformados (p. ej., magic cookie inválida/corta/NULL) causan una corrupción de memoria durante la configuración del decodificador.
- Se desencadena en el iMessage media conversion path sin taps por parte del usuario.
- Produce ejecución de código en el proceso de parsing de medios. El write-up afirma que esto escapa BlastDoor en la ruta de entrega observada, habilitando la siguiente etapa.
Practical tips:
- Fuzz AAC/AMR magic cookie y MP4 codec atoms al apuntar a AudioConverterService conversions.
- Enfóquese en heap overflows/underflows, OOB reads/writes, y confusión de size/length alrededor de la inicialización del decoder.
PAC bypass via RPAC path (CVE-2025-31201)
arm64e Pointer Authentication (PAC) dificulta el secuestro de return addresses y function pointers. La cadena reporta derrotar PAC usando un RPAC path una vez que se dispone de arbitrary read/write.
Key idea:
- Con arbitrary R/W, los atacantes pueden forjar pointers válidos y re-signed o pivotar la ejecución hacia rutas tolerantes a PAC. La llamada “RPAC path” permite control de flujo bajo las restricciones de PAC, convirtiendo un userland RCE en una configuración de exploit kernel confiable.
Notes for researchers:
- Collect info leaks para derrotar KASLR y estabilizar cadenas ROP/JOP incluso bajo PAC.
- Apunte a callsites que generen o autentiquen PAC de formas controlables (p. ej., firmas generadas sobre valores controlados por el atacante, context keys predecibles, o secuencias de gadgets que re-sign pointers).
- Espere variaciones en los hardening de Apple según SoC/OS; la fiabilidad depende de leaks, entropía y primitivas robustas.
Kernel escalation: wireless/AMPDU path example
En la cadena observada, una vez en userland con corrupción de memoria y un primitive de PAC bypass, se logró control del kernel vía rutas de código en el Wi‑Fi stack (AppleBCMWLAN) bajo manejo malformado de AMPDU. Example logs:
IO80211ControllerMonitor::setAMPDUstat unhandled kAMPDUStat_ type 14
IO80211ControllerMonitor::setAMPDUstat unhandled kAMPDUStat_ type 13
Técnica general:
- Usar userland primitives para construir kernel R/W o rutas de llamadas controladas.
- Abusar de superficies de kernel alcanzables (IOKit, networking/AMPDU, media shared memory, Mach interfaces) para lograr control del PC del kernel o acceso a memoria arbitraria.
- Estabilizar construyendo read/write primitives y venciendo las restricciones PPL/SPTM cuando corresponda.
Post-explotación: CryptoTokenKit y abuso de identidad/firmado
Una vez comprometido el kernel, procesos como identityservicesd pueden ser suplantados y operaciones criptográficas privilegiadas invocadas a través de CryptoTokenKit sin avisos al usuario. Ejemplos de logs:
CryptoTokenKit operation:2 algo:algid:sign:ECDSA:digest-X962:SHA256
CryptoTokenKit <sepk:p256(d) kid=9a86778f7163e305> parsed for identityservicesd
Impacto:
- Usar claves respaldadas por Secure Enclave para firmas no autorizadas (tokens, messages, payments), rompiendo modelos de confianza incluso si las claves no se exportan.
- Interceptar silenciosamente códigos/messages 2FA; autorizar payments/transfers; habilitar mic/camera/GPS de forma sigilosa.
Enfoque defensivo:
- Tratar las rupturas de integridad post-kernel como catastróficas: aplicar runtime attestation para consumidores de CTK; minimizar ambient authority; verificar entitlements en el punto de uso.
Reproducción y pistas de telemetría (solo laboratorio)
- Entrega: enviar un audio AMR/MP4-AAC manipulado al dispositivo objetivo vía iMessage/SMS.
- Observar la telemetría en busca de las líneas de log anteriores relacionadas con el parsing y las reacciones de la pila wireless.
- Asegúrese de que los dispositivos estén completamente parcheados; probar solo en entornos de laboratorio aislados.
Mitigaciones e ideas de hardening
- Nivel de parche: iOS 18.4.1 se informa que corrige esta cadena; mantenga los dispositivos actualizados.
- Endurecimiento del parser: validación estricta de codec cookies/atoms y longitudes; rutas de decodificación defensivas con comprobaciones de límites.
- Aislamiento de iMessage: evitar relajar BlastDoor/Blackhole en contextos de “known sender” para el parsing de media.
- Hardening de PAC: reducir la disponibilidad de PAC-gadgets; asegurar que las firmas estén vinculadas a contextos impredecibles; eliminar patrones PAC-tolerant que permitan bypass.
- CryptoTokenKit: requerir post-kernel attestation y entitlements fuertes en tiempo de llamada para operaciones vinculadas a claves.
- Superficies del kernel: endurecer el manejo de wireless AMPDU/status; minimizar las entradas controladas por el atacante desde userland tras una compromisión.
Versiones afectadas (según se informa)
- iOS 18.x anteriores a iOS 18.4.1 (16 de abril de 2025).
- Principal: CoreAudio → AudioConverterService (media auto-parsing path via iMessage/SMS).
- Encadenado: ruta PAC/RPAC y escalada de kernel vía el manejo de AppleBCMWLAN AMPDU.
Referencias
tip
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.