iMessage Media Parser Zero-Click → CoreAudio RCE → PAC/RPAC → Kernel → CryptoTokenKit Abuse

Reading time: 6 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

This page summarizes a modern iOS zero-click attack surface and an observed end-to-end exploitation chain abusing iMessage automatic media parsing to compromise CoreAudio, bypass BlastDoor, defeat Pointer Authentication (PAC) via an RPAC path, escalate to kernel, and finally abuse CryptoTokenKit for unauthorized key uses.

Warning: This is an educational summary to help defenders, researchers, and red teams understand the techniques. Do not use offensively.

Загальний ланцюг

  • Delivery vector: a malicious audio attachment (e.g., .amr / MP4 AAC) sent via iMessage/SMS.
  • Авто-обробка: iOS автоматично розбирає медіа для попереднього перегляду та конвертацій без взаємодії користувача.
  • Parser bug: malformed structures hit CoreAudio’s AudioConverterService and corrupt heap memory.
  • Виконання коду в контексті медіа: RCE всередині процесу парсингу медіа; зафіксовано обходити ізоляцію BlastDoor в окремих шляхах (наприклад, “known sender” framing path).
  • PAC/RPAC bypass: once arbitrary R/W is achieved, a PAC bypass in the RPAC path enables stable control flow under arm64e PAC.
  • Kernel escalation: the chain converts userland exec into kernel exec (e.g., via wireless/AppleBCMWLAN code paths and AMPDU handling as seen in logs below).
  • Post-exploitation: with kernel, abuse CryptoTokenKit to perform signing with Secure Enclave–backed keys, read sensitive data paths (Keychain contexts), intercept messages/2FA, silently authorize actions, and enable stealth surveillance (mic/camera/GPS) without prompts.

Примітки щодо поверхні атаки iMessage/BlastDoor

BlastDoor is a hardened service designed to parse untrusted message content. However, observed logs indicate paths where protections may be bypassed when messages are framed from a “known sender” and when additional filters (e.g., Blackhole) are relaxed:

text
IDSDaemon    BlastDoor: Disabled for framing messages
SpamFilter   Blackhole disabled; user has disabled filtering unknown senders.

Висновки:

  • Автоматичний парсинг все ще представляє віддалену поверхню атаки zero-click.
  • Рішення політики/контексту (відомий відправник, стан фільтрації) можуть суттєво змінити ефективну ізоляцію.

CoreAudio: AudioConverterService heap corruption (userland RCE)

Задіяний компонент:

  • CoreAudio → AudioConverterService → AAC/AMR/MP4 розбір і потоки конвертації

Спостережувана точка взаємодії парсера (логи):

text
AudioConverterService    ACMP4AACBaseDecoder.cpp: inMagicCookie=0x0, inMagicCookieByteSize=39

Technique summary:

  • Неправильні метадані контейнера/codec (наприклад, invalid/short/NULL magic cookie) призводять до пошкодження пам'яті під час налаштування декодування.
  • Викликається в шляху конвертації медіа iMessage без натискань (taps) користувача.
  • Дає code execution у процесі парсингу медіа. Опис стверджує, що це escapes BlastDoor у спостережуваному шляху доставки, дозволяючи наступний етап.

Practical tips:

  • Fuzz AAC/AMR magic cookie та MP4 codec atoms при націлюванні на конверсії AudioConverterService.
  • Фокусуйтеся на heap overflows/underflows, OOB reads/writes та size/length confusion навколо decoder initialization.

PAC bypass via RPAC path (CVE-2025-31201)

arm64e Pointer Authentication (PAC) ускладнює перехоплення return addresses та function pointers. У ланцюжку повідомляють, що PAC долається через RPAC path після отримання arbitrary read/write.

Key idea:

  • Маючи arbitrary R/W, атакуючі можуть створити валідні, re-signed pointers або pivot execution до PAC-tolerant шляхів. Так званий “RPAC path” дозволяє контроль потоку виконання в умовах обмежень PAC, перетворюючи userland RCE на надійну установку для kernel exploit.

Notes for researchers:

  • Збирайте info leaks для обходу KASLR та стабілізації ROP/JOP ланцюгів навіть при наявності PAC.
  • Орієнтуйтеся на callsites, які генерують або автентифікують PAC контрольованим способом (наприклад, signatures generated on attacker-controlled values, predictable context keys, або gadget sequences that re-sign pointers).
  • Очікуйте варіацій жорсткості захисту Apple в залежності від SoC/OS; надійність залежить від leaks, entropy та надійних primitives.

Kernel escalation: wireless/AMPDU path example

У спостережуваному ланцюгу, після досягнення userland з memory corruption та PAC bypass primitive, контроль над kernel було досягнуто через code paths у Wi‑Fi стеку (AppleBCMWLAN) при некоректній обробці malformed AMPDU. Example logs:

text
IO80211ControllerMonitor::setAMPDUstat unhandled kAMPDUStat_ type 14
IO80211ControllerMonitor::setAMPDUstat unhandled kAMPDUStat_ type 13

Загальна техніка:

  • Використовувати userland primitives для побудови kernel R/W або controlled call paths.
  • Зловживати reachable kernel surfaces (IOKit, networking/AMPDU, media shared memory, Mach interfaces) щоб досягти kernel PC control або arbitrary memory.
  • Стабілізувати шляхом побудови read/write primitives і обходу обмежень PPL/SPTM там, де це застосовно.

Пост-експлуатація: CryptoTokenKit та зловживання identity/signing

Після компрометації kernel, процеси на кшталт identityservicesd можна імітувати, а привілейовані криптографічні операції викликати через CryptoTokenKit без запитів у користувача. Приклад логів:

text
CryptoTokenKit    operation:2 algo:algid:sign:ECDSA:digest-X962:SHA256
CryptoTokenKit    <sepk:p256(d) kid=9a86778f7163e305> parsed for identityservicesd

Impact:

  • Використовувати ключі, підкріплені Secure Enclave, для несанкціонованого підписування (токенів, повідомлень, платежів), підриваючи моделі довіри навіть якщо ключі не були експортовані.
  • Таємно перехоплювати 2FA-коди/повідомлення; авторизувати платежі/перекази; увімкнути прихований мікрофон/камеру/GPS.

Defensive angle:

  • Розглядати порушення цілісності після ядра як катастрофічні: забезпечити runtime attestation для CTK-клієнтів; мінімізувати ambient authority; перевіряти entitlements у точці використання.

Reproduction and telemetry hints (lab only)

  • Delivery: надішліть спеціально сформований аудіофайл AMR/MP4-AAC на цільовий пристрій через iMessage/SMS.
  • Observe telemetry for the foregoing log lines around parsing and wireless stack reactions.
  • Ensure devices are fully patched; only test in isolated lab setups.

Mitigations and hardening ideas

  • Patch level: iOS 18.4.1 reportedly fixes this chain; keep devices up to date.
  • Parser hardening: сувора валідація codec cookies/atoms та довжин; оборонні шляхи декодування з перевірками меж.
  • iMessage isolation: уникайте послаблення BlastDoor/Blackhole у “known sender” контекстах для парсингу медіа.
  • PAC hardening: зменшити PAC-gadget availability; забезпечити прив'язку підписів до непередбачуваних контекстів; видалити PAC-tolerant bypassable patterns.
  • CryptoTokenKit: вимагати post-kernel attestation і сильні entitlements під час виклику для операцій, прив'язаних до ключів.
  • Kernel surfaces: зміцнити обробку wireless AMPDU/status; мінімізувати attacker-controlled inputs from userland після компрометації.

Affected versions (as reported)

  • iOS 18.x prior to iOS 18.4.1 (April 16, 2025).
  • Primary: CoreAudio → AudioConverterService (media auto-parsing path via iMessage/SMS).
  • Chained: PAC/RPAC path and kernel escalation via AppleBCMWLAN AMPDU handling.

References

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks