CVE-2025-31200 e CVE-2025-31201 | Cadeia RCE Zero-Click do iMessage
Resumo
Este repositório documenta pesquisas sobre uma cadeia de exploração remota zero-click que afeta o iOS 18.x e versões posteriores. Um arquivo de áudio AMR malformado entregue via iMessage desencadeia:
- Corrupção de heap no CoreAudio (CVE-2025-31200) — na decodificação AMR 12.2 do AudioConverterService via parâmetros de bitstream ilegais embutidos em quadros FT=7 válidos.
- Escalonamento de kernel via tratamento AppleBCMWLAN/AMPDU (CVE-2025-31201) — bypass de RPAC alcança leitura/escrita completa do kernel.
- Pivô de hardware via SRAM de coexistência BCM4387 (CVE pendente) — R/W do kernel usado para gravar diretamente na SRAM de coexistência Broadcom Wi-Fi/BT abaixo do limite de IOMMU, injetando comandos HCI no controlador Bluetooth sem interceptação do SO.
Em testes pós-pivô, foi observado uso indevido de operações de assinatura do CryptoTokenKit — invocação de chaves respaldadas pela Secure Enclave sem solicitações interativas, via identidade Bluetooth falsificada. A Apple corrigiu CVE-2025-31200 e CVE-2025-31201 no iOS 18.4.1. A ponte de coexistência BCM4387 permanece sem correção em qualquer versão do iOS.
Comportamento Verificado
- CVE-2025-31200 (CoreAudio) — Corrupção de heap no decodificador AMR 12.2 do AudioConverterService via parâmetros de bitstream ilegais em quadros FT=7 válidos. 189 violações de parâmetros em 50 quadros; pitch lag máximo de 248 contra o máximo legal de 143; estouro de heap de 210 bytes. Zero-click, nenhuma interação do usuário necessária.
- CVE-2025-31201 (AppleBCMWLAN) — Escalonamento de privilégios do kernel via confusão de comprimento de subquadro AMPDU em
parseAggregateFrame. Bypass de PAC alcançado sem forjar um ponteiro assinado. Totalmente reproduzível em dispositivos/builds afetados.
- Ponte de coexistência BCM4387 (sem correção) — R/W do kernel usado para gravar diretamente na SRAM de coexistência BCM4387 em
0x102000, que fica 0x5400 bytes abaixo do limite de proteção de IOMMU em 0x1173FF. Comandos HCI injetados diretamente no controlador Bluetooth. Nenhum CVE atribuído. Sem correção em todos os iPhone 13–16, independentemente da versão do iOS.
- Vetor de entrega zero-click — Áudio AMR malicioso processado pelo iMessage enquanto o dispositivo está bloqueado, contornando o BlastDoor por meio de estrutura de contêiner válida com payload de exploit em parâmetros de bitstream do codec.
Comportamento Observado Pós-Comprometimento
- Assinatura não autorizada: CryptoTokenKit /
identityservicesd invocou operações de assinatura a partir de um contexto comprometido, sem prompts de interface, via identidade Bluetooth falsificada que aciona a avaliação de Auto-Unlock (nenhum material de chave da Secure Enclave foi exportado).
- Instabilidade do sistema: Falhas de decodificação de mídia correlacionadas com logs de aplicação de PME, erros de link GPU/AppleDCP, loops de alternância de variante do
mediaplaybackd e travamentos ocasionais de launchd/SoC.
- Condições de propagação: Reutilização de token de pares observada via AWDL; risco potencial entre dispositivos se os caches de token sobreviverem.
Escopo do Impacto
- Afetados: iOS 18.4 e anteriores (CVE-2025-31200, CVE-2025-31201); todos os iPhone 13–16, independentemente da versão do iOS (vetor de hardware BCM4387)
- Corrigidos: iOS 18.4.1 (16 de abr. de 2025) — corrige CVE-2025-31200, CVE-2025-31201
- Sem correção: SRAM de coexistência BCM4387 — sem CVE, sem atualização de firmware, afeta todos os iPhone 13–16
- Vetor: iMessage/SMS zero-click de remetente conhecido (contorna BlastDoor/Blackhole)
- Componente principal: AudioConverterService (decodificador AMR do CoreAudio) → AppleBCMWLAN.dext (escalonamento de kernel) → SRAM de coexistência BCM4387 (pivô de hardware)
- Privilégios necessários: Nenhum (inicial); kernel alcançado após a cadeia
- Resumo do impacto: Integridade (assinatura não autorizada, impersonação de token/dispositivo) + Confidencialidade (captura de framebuffer AGX, vigilância HID) + Disponibilidade (travamentos do sistema)
Linha do Tempo de Divulgação
- Relatado à Apple: 20 de dez. de 2024
- Reenviado à Apple e à US-CERT: 21 de jan. de 2025 (ID de rastreamento: VRF#25-01-MPVDT)
- Compartilhado com o Google Project Zero / Equipe de Pesquisa: 11 de abr. de 2025
- Corrigido pela Apple (CVE-2025-31200, CVE-2025-31201): 16 de abr. de 2025 (iOS 18.4.1)
- Atribuições de CVE: CVE-2025-31200 e CVE-2025-31201
- Listagem KEV do CISA (ambos os CVEs): 16 de abr. de 2025 — prazo federal para correção: 8 de maio de 2025
- SRAM de coexistência BCM4387 submetida ao PSIRT da Broadcom: mar. de 2026 — nenhum CVE atribuído, nenhuma correção emitida
Declaração de Impacto
Um atacante que acione remotamente esta cadeia pode obter:
- Comprometimento em nível de kernel
- Cooptação em tempo de execução das primitivas de assinatura da Secure Enclave
- Impersonação de identidades de dispositivos
- Falsificação de tokens vinculados à identidade
- Pivô de Bluetooth em nível de hardware não abordado por nenhuma atualização de iOS disponível
Severidade: Crítica (CVSS 3.1 considerando a cadeia: 10.0)
Risco operacional: Alto; pivô de hardware BCM4387 sem correção em todos os iPhone 13–16; dispositivos confirmadamente infectados não têm caminho de remediação disponível.
Pesquisas Relacionadas
Recomendações
- Reforce a inspeção de BlastDoor / anexos para todas as mensagens; não ignore com base em metadados do remetente. Estenda a validação aos parâmetros de bitstream do codec, não apenas à estrutura de quadros do contêiner.
- Aplique validação rigorosa de entrada para todos os parâmetros do decodificador, incluindo pitch lag AMR, coeficientes LSF e índices de codebook contra os intervalos legais da 3GPP TS 26.090.
- Implemente atestação em tempo de execução para operações de assinatura do CryptoTokenKit / Secure Enclave, a fim de verificar a integridade e as entitlements do chamador.
- Reforce as superfícies dos drivers sem fio e os entrypoints do IOKit contra dados de kernel malformados; audite o tratamento de comprimento de subquadro AMPDU no AppleBCMWLAN.
- Estenda o limite de proteção de IOMMU do BCM4387 para cobrir a região da SRAM de coexistência (
0x102000–0x1173FF). Requer atualização de firmware da Broadcom distribuída pela infraestrutura de atualização do iOS.
- Monitore os logs do sistema em busca de anomalias em
identityservicesd / ctkd e atividade inesperada de SafariSafeBrowsing.
- Use o ZombieHunter e o MVT do Citizen Lab para avaliação de integridade do dispositivo.
Licença e Aviso Legal
Divulgado para pesquisa defensiva e estudo adicional.